summaryrefslogtreecommitdiff
path: root/magickindle/bin/start.sh
diff options
context:
space:
mode:
Diffstat (limited to 'magickindle/bin/start.sh')
-rw-r--r--magickindle/bin/start.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/magickindle/bin/start.sh b/magickindle/bin/start.sh
new file mode 100644
index 0000000..4b260ad
--- /dev/null
+++ b/magickindle/bin/start.sh
@@ -0,0 +1,58 @@
+#!/bin/sh
+# redirect stderr and stdout to file
+exec >> /mnt/us/log 2>&1
+
+# kill other instances of this script
+me=$$
+ps -ef | grep 'start.sh' | awk -v me=$me '$2 != me {print $2}' | xargs kill
+
+echo "$(date) starting"
+
+update_screensaver() {
+ echo "$(date) downloading screensaver"
+
+ #echo "$(date) enabling wifi"
+ #lipc-set-prop com.lab126.cmd wirelessEnable 1
+ for i in 1 2 3 4 5
+ do
+ curl "CHANGETHIS.png" --output /mnt/us/screensaver.png --fail --silent --show-error && break
+ sleep 10
+ done
+ # turning off wireless during ready to suspend causes issues with Kindle Wifi
+ # - the Kindle forgets the gateway, the configuration gets desynced,
+ # leading to the Kindle being connected but having no network
+ #echo "$(date) disabling wifi"
+ #lipc-set-prop com.lab126.cmd wirelessEnable 0
+
+ echo "$(date) updating screen"
+ eips -f -g /mnt/us/screensaver.png
+}
+
+LAST_UPDATE=0
+lipc-wait-event -m com.lab126.powerd goingToScreenSaver,readyToSuspend | while read event
+do
+ echo "$(date) event $event"
+
+ # throttle to 1/minute
+ NOW=$(date +%s)
+ if [ "$(($NOW - $LAST_UPDATE))" -ge 60 ]
+ then
+ # run in background so loop is not blocked
+ update_screensaver &
+ fi
+ LAST_UPDATE=$NOW
+
+ case "$event" in
+ # event looks like "goingToScreenSaver 7" so use a regex
+ readyToSuspend*)
+ echo "$(date) scheduling wakeup"
+ # must be called within 5s after readyToSuspend
+ # 60s until screensaver + 29min sleep
+ lipc-set-prop -i com.lab126.powerd rtcWakeup 1740
+ ;;
+ goingToScreenSaver*)
+ ;;
+ esac
+ echo "$(date) waiting for next event"
+done;
+