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