summaryrefslogtreecommitdiff
path: root/extra/rust/watcher.sh
blob: 98228b5dbcdd48dbf89a69503920073b9d3064f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/sh

term() {
  echo "--> Got SIGTERM"
  echo "--> killing inotifywait with PID $inotifywait"
  kill -TERM "$inotifywait"
  sleep 10
  kill -9 "$inotifywait"
}

srcdir="$1"

trap term SIGTERM

inotifywait -mr -e close_write --format %w%f $srcdir | while read -r FILE; do
  case "$FILE" in
    *consts.rs)
      echo "--> patching $FILE"
      sed -i '/pub type U1024/d;/pub type P1024/d' $FILE
      echo "--> finished patching $FILE"
      ;;
  esac
done &
inotifywait=$(ps -ef | grep inotifywait | grep -v grep | tr -s ' ' | cut -d ' ' -f2)
echo "--> waiting for inotifywait $inotifywait"
wait "$inotifywait"
echo "--> watcher terminated"