diff options
Diffstat (limited to 'bin/desk')
| -rwxr-xr-x | bin/desk | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/bin/desk b/bin/desk new file mode 100755 index 0000000..fab05b7 --- /dev/null +++ b/bin/desk @@ -0,0 +1,38 @@ +#!/bin/sh + +[ -n "$DEBUG" ] && set -x + +export DESK="DA:02:BE:81:EB:77" + +error() { + notify-send -i /usr/share/icons/mdi/scalable/desk.svg -u critical "desk $1" "${2}" +} + +pos= +case "$1" in + sit | down) pos=780 ;; + stand | up) pos=1150 ;; + *) error "$1" "no position given" ;; +esac + +printf "ensure bluetoothd is started...\n" +{ rc-service bluetooth status || doas rc-service bluetooth start; } >/dev/null + +trap '{ exit 3; }' INT +retries= +while true; do + printf "running bluedesk...\n" + err=$(bluedesk "${pos}" 2>&1 1>/dev/stdout) + # shellcheck disable=SC2181 + if [ $? -ne 0 ]; then + error "$1" "${err}" + sleep 1 + retries=$((retries + 1)) + if [ "${#retries}" -gt 2 ]; then + error "$1" "giving up" + exit 1 + fi + else + exit 0 + fi +done |