#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
set -eu
state=/run/torder-r10d-bluetooth-sleep
case "${1:-}" in
pre)
	if systemctl is-active --quiet torder-r10d-bluetooth.service; then
		bluetoothctl show 2>/dev/null | awk '/Powered:/ {print $2}' >"$state"
		test -s "$state" || printf 'no\n' >"$state"
		systemctl stop torder-r10d-bluetooth.service
		rfkill block bluetooth
	fi
	;;
post)
	if test -f "$state"; then
		powered=$(cat "$state")
		systemctl start torder-r10d-bluetooth.service
		for n in $(seq 1 30); do
			bluetoothctl list | grep -q Controller && break
			sleep 0.2
		done
		restored=no
		for n in $(seq 1 40); do
			current=$(bluetoothctl show 2>/dev/null | awk '/Powered:/ {print $2}')
			if test "$current" = "$powered"; then
				restored=yes
				break
			fi
			if test "$powered" = yes; then bluetoothctl power on || true; else bluetoothctl power off || true; fi
			sleep 0.2
		done
		test "$restored" = yes
		rm -f "$state"
	fi
	;;
*) exit 2 ;;
esac
