OSX compatibility
[m6w6/btr] / share / btr / btrc.sh
1 #!/bin/bash
2
3 function btrc_parseargs {
4 eval set -- "$BTR_EXTRA_ARGS"
5 while test $# -gt 0
6 do
7 case "$1" in
8 s|st|stat|status)
9 BTR_ACTION=status
10 ;;
11 r|run)
12 BTR_ACTION=run
13 ;;
14 c|canc|cancel)
15 BTR_ACTION=cancel
16 ;;
17 t|term|terminate)
18 BTR_ACTION=term
19 ;;
20 *)
21 if test -z "$BTR_BUILD"
22 then
23 BTR_BUILD="$1"
24 else
25 error "Unknown action: '$BTR_BUILD' for build id '$1'!"
26 fi
27 ;;
28 esac
29 shift
30 done
31 }
32
33 function btrc_setup {
34 btrc_parseargs
35
36 if test -z "$BTR_BUILD"
37 then
38 btr_banner
39 btr_help
40 fi
41
42 if test -z "$BTR_ACTION"
43 then
44 BTR_ACTION=status
45 fi
46
47 btr_setup_rundir
48 btr_setup_verbosity false
49
50 BTR_PIDFILE="$BTR_RUNDIR/$BTR_BUILD.pid"
51 BTR_LOGFILE="$BTR_RUNDIR/$BTR_BUILD.log"
52 BTR_COMFILE="$BTR_RUNDIR/$BTR_BUILD.socket"
53
54 if test -r "$BTR_PIDFILE"
55 then
56 export BTR_PIDFILE BTR_LOGFILE BTR_COMFILE
57 else
58 if test -e "$BTR_LOGFILE"
59 then
60 cat "$BTR_LOGFILE"
61 echo
62 fi
63 error "Could not find btrd pid file of '$BTR_BUILD' in $BTR_RUNDIR."
64 fi
65 }
66 export -f btrc_setup
67
68 function btrc_signal {
69 local sig=$1
70 local pid=$(cat "$BTR_PIDFILE")
71 kill -s $sig $pid
72 kill -s CONT $pid
73 case "$sig" in
74 TERM|SIGTERM|15)
75 $SAY -n "Waiting for the daemon to shutdown..."
76 while kill -s 0 $pid &>/dev/null
77 do
78 $SAY -n "."
79 sleep .1
80 done
81 $SAY " Done, bye."
82 ;;
83 esac
84 }
85 export -f btrc_signal
86
87
88 # vim: noet