Mercurial > bottledash
view contrib/dashboardctl @ 40:bef9105f2d28
Merge dashboardctl repository
author | Gernot Schulz <gernot@intevation.de> |
---|---|
date | Tue, 10 Nov 2015 11:47:46 +0100 |
parents | c3955e5cf3b3 |
children |
line wrap: on
line source
#!/usr/bin/env sh # ------------------------------------------------------------------- # Copyright (C) 2015 by Intevation GmbH # Author(s): # Gernot Schulz <gernot.schulz@intevation.de> 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: --start Start Bottledash and the dashboard/browser --stop Stop Bottledash and the dashboard/browser --reload Restart Bottledash and reload the dashboard/browser --smart-reload If a new DB is available, restart Bottledash and reload the dashboard/browser --restart-bd Restart Bottledash --reload-browser Reload dashboard/browser --check-db Check if a new DB is available -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 () { if [ -f "$BOTTLEDASH_PID" ]; then kill $(cat "$BOTTLEDASH_PID") && rm "$BOTTLEDASH_PID" fi } 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 () { if [ -f "$CHROMIUM_PID" ]; then kill $(cat "$CHROMIUM_PID") && rm "$CHROMIUM_PID" fi } 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 '--start') start_bottledash start_chromium ;; '--stop') stop_bottledash stop_chromium ;; '--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 ts=4 sw=4 expandtab :