tic2mqtt-c/run
2024-05-12 16:27:25 +02:00

82 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
dev=/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A500DA2H-if00-port0
rundir=$(realpath $(dirname $0))
session="tic2mqtt"
cmd=""
quiet=""
cd $rundir
while [ $# -gt 0 ]; do
case "$1" in
start) cmd=$1;;
stop) cmd=$1;;
restart) cmd=$1;;
status) cmd=$1;;
log) cmd=$1;;
-q) quiet=$1;;
--quiet) quiet=$1;;
*) echo "usage: $0 [start|stop|restart|status|log] [-q|--quiet]"
exit 1
;;
esac
shift
done
is_running=$(tmux has -t $session 2> /dev/null && echo yes)
case "$cmd" in
start)
if [ -n "$is_running" ]; then
echo "tic2mqtt already running. aborting"
exit 1
fi
make -s
test -z $quiet && echo "starting tic2mqtt"
tmux new -s $session -d "./tic2mqtt -a -t $dev -h doctor -v"
test -z $quiet && tmux ls
;;
stop)
if [ ! -n "$is_running" ]; then
test -z $quiet && echo "no tic2mqtt running. nothing to stop"
exit 0
fi
test -z $quiet && echo "killing tic2mqtt"
tmux kill-session -t $session
;;
restart)
$0 $quiet stop
$0 $quiet start
;;
status)
if [ -n "$is_running" ]; then
tmux ls | grep $session
else
echo "no tic2mqtt running"
fi
;;
log)
if [ -n "$is_running" ]; then
tmp=$(mktemp)
tmux capture -t $session -p -S - >$tmp
if [ $(cat $tmp |wc -l) -gt 30 ]; then
head -10 $tmp
echo
echo "[...]"
echo
tail -20 $tmp
else
cat $tmp
fi
rm -f $tmp
else
echo "no tic2mqtt running"
fi
;;
*)
echo "usage: $0 [start|stop]"
;;
esac