#!/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 ;; walk) pos=1235 ;; *) 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=3 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}" -eq 0 ]; then error "$1" "giving up" exit 1 fi else exit 0 fi done