Mercurial > bottledash
view contrib/dashboardctl @ 35:295e3253bb49
Wait for bottledash to get ready after starting it
author | Gernot Schulz <gernot@intevation.de> |
---|---|
date | Mon, 19 Oct 2015 13:30:30 +0200 |
parents | 7162616389a5 |
children | 1e084c23d101 |
line wrap: on
line source
#!/usr/bin/env sh export DISPLAY=":0.0" OLDDB=/home/pi/incoming_dbs/tech_intern.db NEWDB=/home/pi/incoming_dbs/tech_intern.db.new BOTTLEDASH_PID="$HOME/bottledash.pid" BOTTLEDASH_LOG="$HOME/bottledash.log" CHROMIUM_PID="$HOME/chromium.pid" CHROMIUM_LOG="$HOME/chromium.log" usage () { cat << EOF Usage: $0 [COMMAND] Commands: --restart-bd Restart Bottledash --reload-browser Reload dashboard/browser --reload Restart Bottledash and reload the dashboard/browser --check-db Check if a new DB is available --smart-reload If a new DB is available, restart Bottledash and reload the dashboard/browser -h, --help This help EOF } start_bottledash () { # taken from start-bottledash-hohup nohup python3 /home/pi/bottledash/dash.py 2>&1 > $BOTTLEDASH_LOG & echo $! > $BOTTLEDASH_PID sleep 10 } stop_bottledash () { kill $(cat $BOTTLEDASH_PID) } start_chromium () { # taken from show-dashboard rm -R $HOME/.cache/chromium/Default/Cache/ DISPLAY=:0.0 nohup chromium --new --noerrdialogs --kiosk \ http://localhost:8080 2>&1 > $CHROMIUM_LOG & echo $! > $CHROMIUM_PID } stop_chromium () { kill $(cat $CHROMIUM_PID) } xdo_reload_chromium () { # Start Chromium if necessary if [ -f "$BOTTLEDASH_PID" ] && [ -d /proc/$(cat "$CHROMIUM_PID") ]; then # Send F5 to Chromium WID=$(xdotool search --onlyvisible --class chromium | head -1) xdotool windowactivate ${WID} xdotool key F5 else start_chromium fi } check_new_db () { if [ ! -f "$NEWDB" ]; then echo 0 ; return fi OLDSIZE=$(md5sum $OLDDB | awk '{print $1}') NEWSIZE=$(md5sum $NEWDB | awk '{print $1}') if [ "$OLDSIZE" != "$NEWSIZE" ]; then echo 1 else echo 0 fi } update_db () { if [ $(check_new_db) -eq 1 ]; then mv "$NEWDB" "$OLDDB" fi } case $1 in '--restart-bd') stop_bottledash start_bottledash ;; '--reload-browser') xdo_reload_chromium ;; '--reload') stop_bottledash start_bottledash xdo_reload_chromium ;; '--check-db') check_new_db ;; '--smart-reload') if [ $(check_new_db) -eq 1 ]; then update_db stop_bottledash start_bottledash sleep 10 xdo_reload_chromium fi ;; '-h'|'--help') usage exit 0 ;; *) echo "ERROR: unknown command: $1" >&2 usage exit 2 ;; esac # vim: set ft=sh :