added command handling
parent
b1883f0ec6
commit
e177bedd69
|
@ -0,0 +1,38 @@
|
|||
#!/bin/bash
|
||||
|
||||
COMMAND_FILE=/tmp/command
|
||||
COMMAND_FILE_TMP=/tmp/command_tmp
|
||||
|
||||
lounge_light() {
|
||||
echo "not implemented"
|
||||
}
|
||||
|
||||
lounge_light_toggle() {
|
||||
./light.sh
|
||||
}
|
||||
|
||||
cd "$(dirname $0)"
|
||||
touch "$COMMAND_FILE"
|
||||
chmod 666 "$COMMAND_FILE"
|
||||
while inotifywait -qq -e close_write "$COMMAND_FILE"; do
|
||||
mv "$COMMAND_FILE" "$COMMAND_FILE_TMP"
|
||||
sleep .1 # wait for possible further/parallel writes to end
|
||||
while IFS='' read -r line || [[ -n "$line" ]]; do
|
||||
echo "Text read from file: $line"
|
||||
case "$line" in
|
||||
lounge_light_toggle)
|
||||
lounge_light_toggle
|
||||
;;
|
||||
lounge_light*)
|
||||
lounge_light "$COMMAND"
|
||||
;;
|
||||
*)
|
||||
echo "ERROR; available commands:" >&2
|
||||
echo "lounge_light lounge_light_toggle" >&2
|
||||
;;
|
||||
esac
|
||||
done < "$COMMAND_FILE_TMP"
|
||||
rm "$COMMAND_FILE_TMP"
|
||||
touch "$COMMAND_FILE"
|
||||
chmod 666 "$COMMAND_FILE"
|
||||
done
|
9
run.sh
9
run.sh
|
@ -1,6 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
cd "$(dirname $0)"
|
||||
|
||||
(
|
||||
while true; do
|
||||
/usr/bin/python3 chch-power.py >/dev/null 2>&1
|
||||
|
@ -8,3 +9,11 @@ cd "$(dirname $0)"
|
|||
done
|
||||
) &
|
||||
disown $!
|
||||
|
||||
(
|
||||
while true; do
|
||||
./command_watcher.sh >/dev/null 2>&1
|
||||
sleep 1
|
||||
done
|
||||
) &
|
||||
disown $!
|
||||
|
|
22
shell.sh
22
shell.sh
|
@ -5,6 +5,8 @@
|
|||
# cat .ssh/authorized_keys
|
||||
# command="/home/automation/chch-power/shell.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAA...
|
||||
|
||||
COMMAND_FILE=/tmp/command
|
||||
|
||||
status() {
|
||||
STATUS="$(cat /tmp/status)"
|
||||
if [ -z "$STATUS" ]; then
|
||||
|
@ -13,14 +15,32 @@ status() {
|
|||
echo "$STATUS"
|
||||
}
|
||||
|
||||
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"
|
||||
}
|
||||
|
||||
read COMMAND
|
||||
case "$COMMAND" in
|
||||
status)
|
||||
status
|
||||
;;
|
||||
lounge_light_toggle)
|
||||
lounge_light_toggle
|
||||
;;
|
||||
lounge_light*)
|
||||
lounge_light "$(echo $COMMAND | cut -d" " -f2 | grep -oe "[a-z]\?[0-9a-fA-F]*" | head -n1)"
|
||||
;;
|
||||
*)
|
||||
echo "ERROR; available commands:" >&2
|
||||
echo "status" >&2
|
||||
echo "status lounge_light lounge_light_toggle" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
|
Loading…
Reference in New Issue