chch-power/shell.sh

90 lines
1.7 KiB
Bash
Executable File

#!/bin/bash --
# shold be started from a separate account
# access via ssh:
# cat .ssh/authorized_keys
# restrict,command="/home/automation/chch-power/shell.sh" ssh-rsa AAAA...
COMMAND_FILE=/tmp/command
if [ ! -p "$COMMAND_FILE" ]; then
echo "ERROR; command watcher not listening:" >&2
exit 1
fi
status() {
STATUS="$(cat /tmp/status)"
if [ -z "$STATUS" ]; then
STATUS="geschlossen"
fi
echo "$STATUS"
}
corridor_light() {
COMMAND="corridor_light $1"
echo "$COMMAND" >> $COMMAND_FILE
echo "OK $COMMAND"
}
corridor_light_toggle() {
COMMAND="corridor_light_toggle"
echo "$COMMAND" >> $COMMAND_FILE
echo "OK $COMMAND"
}
lounge_light() {
COMMAND="lounge_light $1"
echo "$COMMAND" >> $COMMAND_FILE
echo "OK $COMMAND"
}
lounge_light_toggle() {
COMMAND="lounge_light_toggle"
echo "$COMMAND" >> $COMMAND_FILE
echo "OK $COMMAND"
}
e-lab_light() {
COMMAND="e-lab_light $1"
echo "$COMMAND" >> $COMMAND_FILE
echo "OK $COMMAND"
}
e-lab_light_toggle() {
COMMAND="e-lab_light_toggle"
echo "$COMMAND" >> $COMMAND_FILE
echo "OK $COMMAND"
}
read COMMAND
COLOR_STRING="$(echo "$COMMAND " | cut -d" " -f2 | grep -oe "[a-z]\?[0-9a-fA-F]*" | head -n1)"
case "$COMMAND" in
status)
status
;;
corridor_light_toggle)
corridor_light_toggle
;;
corridor_light\ *)
corridor_light $COLOR_STRING
;;
lounge_light_toggle)
lounge_light_toggle
;;
lounge_light\ *)
lounge_light $COLOR_STRING
;;
e-lab_light_toggle)
e-lab_light_toggle
;;
e-lab_light\ *)
e-lab_light $COLOR_STRING
;;
*)
echo "ERROR; available commands:" >&2
echo "status, corridor_light [string], corridor_light_toggle, lounge_light [string], lounge_light_toggle, e-lab_light [string], e-lab_light_toggle" >&2
exit 1
;;
esac
exit 0