gernot@33: #!/usr/bin/env sh gernot@33: gernot@33: export DISPLAY=":0.0" gernot@33: gernot@33: OLDDB=/home/pi/incoming_dbs/tech_intern.db gernot@33: NEWDB=/home/pi/incoming_dbs/tech_intern.db.new gernot@33: gernot@33: usage () { gernot@33: cat << EOF gernot@33: Usage: $0 [COMMAND] gernot@33: gernot@33: Commands: gernot@33: --restart-bd Restart Bottledash gernot@33: --reload-browser Reload dashboard/browser gernot@33: --reload Restart Bottledash and reload the dashboard/browser gernot@33: --check-db Check if a new DB is available gernot@33: --smart-reload If a new DB is available, restart Bottledash and reload gernot@33: the dashboard/browser gernot@33: -h, --help This help gernot@33: EOF gernot@33: } gernot@33: gernot@33: start_bottledash () { gernot@33: # taken from start-bottledash-hohup gernot@33: nohup python3 /home/pi/bottledash/dash.py 2>&1 > $HOME/bottledash.log & gernot@33: echo $! > $HOME/pid_bottledash gernot@33: } gernot@33: gernot@33: stop_bottledash () { gernot@33: kill $(cat $HOME/pid_bottledash) gernot@33: } gernot@33: gernot@33: start_chromium () { gernot@33: # taken from show-dashboard gernot@33: rm -R $HOME/.cache/chromium/Default/Cache/ gernot@33: DISPLAY=:0.0 nohup chromium --new --noerrdialogs --kiosk \ gernot@33: http://localhost:8080 2>&1 > $HOME/show-dashboard.log & gernot@33: echo $! > $HOME/pid_chromium gernot@33: } gernot@33: gernot@33: gernot@33: stop_chromium () { gernot@33: kill $(cat pid_chromium) gernot@33: } gernot@33: gernot@33: xdo_reload_chromium () { gernot@33: # Start Chromium if necessary gernot@33: if [ -f "$HOME/pid_bottledash" ] && [ -d /proc/$(cat "$HOME/pid_chromium") ]; then gernot@33: # Send F5 to Chromium gernot@33: WID=$(xdotool search --onlyvisible --class chromium | head -1) gernot@33: xdotool windowactivate ${WID} gernot@33: xdotool key F5 gernot@33: else gernot@33: start_chromium gernot@33: fi gernot@33: } gernot@33: gernot@33: check_new_db () { gernot@33: if [ ! -f "$NEWDB" ]; then gernot@33: echo 0 ; return gernot@33: fi gernot@33: OLDSIZE=$(md5sum $OLDDB | awk '{print $1}') gernot@33: NEWSIZE=$(md5sum $NEWDB | awk '{print $1}') gernot@33: if [ "$OLDSIZE" != "$NEWSIZE" ]; then gernot@33: echo 1 gernot@33: else gernot@33: echo 0 gernot@33: fi gernot@33: } gernot@33: gernot@33: update_db () { gernot@33: if [ $(check_new_db) -eq 1 ]; then gernot@33: mv "$NEWDB" "$OLDDB" gernot@33: fi gernot@33: } gernot@33: gernot@33: case $1 in gernot@33: '--restart-bd') gernot@33: stop_bottledash gernot@33: start_bottledash gernot@33: ;; gernot@33: '--reload-browser') gernot@33: xdo_reload_chromium gernot@33: ;; gernot@33: '--reload') gernot@33: stop_bottledash gernot@33: start_bottledash gernot@33: sleep 10 gernot@33: xdo_reload_chromium gernot@33: ;; gernot@33: '--check-db') gernot@33: check_new_db gernot@33: ;; gernot@33: '--smart-reload') gernot@33: if [ $(check_new_db) -eq 1 ]; then gernot@33: update_db gernot@33: stop_bottledash gernot@33: start_bottledash gernot@33: sleep 10 gernot@33: xdo_reload_chromium gernot@33: fi gernot@33: ;; gernot@33: '-h'|'--help') gernot@33: usage gernot@33: exit 0 gernot@33: ;; gernot@33: *) gernot@33: echo "ERROR: unknown command: $1" >&2 gernot@33: usage gernot@33: exit 2 gernot@33: ;; gernot@33: esac gernot@33: gernot@33: # vim: set ft=sh :