Refactor morning-alarm.sh script

Adjusted comments and translated the comments and script messages into English for better clarity. The script now provides more informative output during its execution, including status messages for Bluetooth operations, volume adjustment, and alarm notification checks. Additionally, introduced error handling for Bluetooth and volume adjustment operations to ensure the script exits gracefully in case of failures.

The main program section and function names have been retained for continuity, but the script's overall readability and understandability have been improved through language translation and comments rephrasing.
This commit is contained in:
Ratatoskr 2024-01-26 23:47:02 +01:00
parent 4bb7048638
commit fe66c936c4
Signed by: Ratatoskr
GPG Key ID: 28B77439A6D78F4E

View File

@ -1,50 +1,51 @@
#!/bin/sh #!/bin/sh
# #
# Wecker-Steuerungsskript # Alarm Control Script
# #
# Dieses Skript steuert den Wecker auf dem Android-Gerät. # This script controls the alarm on the Android device.
# Es schaltet Bluetooth aus, erhöht die Lautstärke und überprüft, ob der Wecker beendet wurde. # It turns off Bluetooth, increases the volume, and checks if the alarm has been dismissed.
# Nach dem Beenden des Weckers wird der Weckersound abgespielt. # After the alarm is dismissed, it plays the alarm sound.
echo "Script ausgeführt um: $(date)" > /data/scripts/morning-alarm.log echo "Script executed at: $(date)" > /data/scripts/morning-alarm.log
# Funktion zum Ausschalten von Bluetooth # Function to turn off Bluetooth
turn_off_bluetooth() { turn_off_bluetooth() {
svc bluetooth disable echo "Turning off Bluetooth."
svc bluetooth disable || { echo "Error turning off Bluetooth." ; exit 1; }
} }
# Funktion zum Erhöhen der Lautstärke # Function to increase the volume
increase_volume() { increase_volume() {
cmd media_session volume --set 15 --stream 9 echo "Increasing volume."
cmd media_session volume --set 15 --stream 9 || { echo "Error increasing volume." ; exit 1; }
} }
# Funktion zum Überprüfen der Weckerbenachrichtigung # Function to check the alarm notification
check_notification() { check_notification() {
# Führe den dumpsys-befehl innerhalb eines Timeout aus # Run the dumpsys command within a timeout
output=$(dumpsys activity processes | grep "com.urbandroid.sleep/") output=$(timeout 5s dumpsys activity processes | grep "com.urbandroid.sleep/")
# Überprüfe, ob das Ergebnis nicht leer ist und den Wecker enthält # Check if the result is not empty and contains the alarm
if [ -n "$output" ] && echo "$output" | grep -q "AlarmKlaxon"; then if [ -n "$output" ] && echo "$output" | grep -q "AlarmKlaxon"; then
date && echo "Wecker noch nicht beendet." date && echo "Alarm not dismissed yet."
else else
date && echo "Alarm dismissed."
killall mpv killall mpv
date && echo "Wecker beendet."
echo "$output" echo "$output"
exit exit
fi fi
} }
# Hauptprogramm # Main program
# Ausschalten von Bluetooth # Turn off Bluetooth
turn_off_bluetooth turn_off_bluetooth
# Weckersound abspielen # Play alarm sound
/data/data/com.termux/files/usr/bin/mpv --replaygain=track --loop=inf /data/scripts/your-new-morning-alarm.ogg & /data/data/com.termux/files/usr/bin/mpv --replaygain=track --loop=inf /data/scripts/your-new-morning-alarm.ogg &
# Lautstärke erhöhen und Benachrichtigung überprüfen # Increase volume and check notification
while true; do while true; do
increase_volume increase_volume
check_notification check_notification
done done