chch-power/command_watcher.sh

39 lines
815 B
Bash
Executable File

#!/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