Files
off/off.sh

58 lines
1.4 KiB
Bash

TIME_START=00:00
TIME_STOP=23:59
tv_check()
{
ping -c 1 -W 1 192.168.1.12 2>&1 > /dev/null || { echo "TV is unreachable."; return; }
adb connect 192.168.1.12
if adb shell dumpsys power | grep mWakefulness=Awake
then
adb shell input keyevent 26
else
echo "TV is turning OFF."
fi
}
gabi_check()
{
loginctl list-users | grep gabi || { echo 'Gabi is not online.'; return; }
doas loginctl terminate-user gabi
}
gaja_check()
{
ping -c 1 -W 1 192.168.1.122 2>&1 >/dev/null || { echo "Gaja's PC is unreachable."; return; }
# Check if Gaja has any sessions
sshpass -p Nagaja ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no -F /dev/null gaja@192.168.1.122 \
"loginctl list-sessions --no-pager 2>/dev/null | grep -q gaja" 2>&1
if [ $? -ne 0 ]; then
echo "Gaja is not online."
return
fi
# Terminate all of Gaja's sessions (SSH drops = success)
sshpass -p Nagaja ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no -F /dev/null gaja@192.168.1.122 \
"loginctl terminate-user gaja" 2>/dev/null
echo "Gaja's PC: logged out."
}
S=$(date -d "$TIME_START" +%s)
T=$(date -d "$TIME_STOP" +%s)
C=$(date +%s)
if [ $C -lt $S ]
then
echo "PRE: $((S - C)) seconds to go."
elif [ $C -gt $T ]
then
echo "POST: $((C - T)) seconds passed."
else
echo "ACTIVE: Executing for the next $((T - C)) seconds."
gabi_check
gaja_check
tv_check
fi
exit 0