aboutsummaryrefslogtreecommitdiff
path: root/numen/scripts/radio.sh
diff options
context:
space:
mode:
Diffstat (limited to 'numen/scripts/radio.sh')
-rwxr-xr-xnumen/scripts/radio.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/numen/scripts/radio.sh b/numen/scripts/radio.sh
new file mode 100755
index 0000000..e573894
--- /dev/null
+++ b/numen/scripts/radio.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+set -e
+
+if [ ! -d "$NUMEN_STATE_DIR" ]; then
+ exit 1
+fi
+
+PID_PATH=$NUMEN_STATE_DIR/radio.pid
+PID=$(cat $PID_PATH 2> /dev/null || true)
+
+if [ ! -z "$PID" ]; then
+ kill -- $PID $(ps --ppid $PID -o pid=) || true
+ waitpid $PID || true
+ rm -f $PID_PATH
+fi
+
+if [ -z "$1" ]; then
+ exit 0
+fi
+
+if ! command -v "radio-$1" > /dev/null; then
+ exit 1
+fi
+
+(echo $$ > $PID_PATH)
+
+trap "exit 1" HUP INT PIPE QUIT TERM
+trap "rm -rf $PID_PATH" EXIT
+
+radio-$1 > /dev/null 2>&1