scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | Submodules | README | LICENSE

0101-signal.sh (457B)


      1 #!/bin/sh
      2 
      3 cleanup()
      4 {
      5 	rm -f test.txt
      6 	kill -KILL $pid 2>/dev/null
      7 	if test $1 -ne 0
      8 	then
      9 		kill -KILL $$
     10 	fi
     11 }
     12 
     13 rm -f file.txt
     14 trap 'cleanup 0' EXIT
     15 trap 'cleanup 1' INT TERM HUP
     16 
     17 scc make -qf - test.txt <<'EOF' &
     18 test.txt:
     19 	@+touch $@
     20 	+@while : ; do sleep 1 ; done
     21 EOF
     22 pid=$!
     23 
     24 sleep 10 && echo timeout >&2 && kill $$ 2>/dev/null &
     25 timer=$!
     26 
     27 while :
     28 do
     29 	if test -f test.txt
     30 	then
     31 		kill $pid
     32 		wait $pid
     33 		kill $timer
     34 		break
     35 	fi
     36 done
     37 
     38 test -f test.txt