summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2021-11-02 19:10:59 +0100
committerRobert Günzler <r@gnzler.io>2021-11-02 19:10:59 +0100
commit44641c5e6a1a7aab269b32589effc2d91cb81a16 (patch)
treefab66c23d9c40dfbfe0978d28e58c31367d12128
parentc285502c804bf7a961629f4a53c7d78c58ea6171 (diff)
Add desk script
-rwxr-xr-xbin/desk38
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