#!/bin/bash
## Script created by Rainer Rössler (roesslerrr-at-web.de)
## Modified by Robin Schneider <ypid@riseup.net>
## This script can be automatically set up by the Ansible role ypid.linuxmuster_net-client-customize: https://galaxy.ansible.com/list#/roles/4058
## License: Free Software (License GPLv3)

export LANG="de_DE.utf8"
export PATH="/usr/bin:/sbin:/bin"

TARGET_USER="$(who | grep 'tty' | tail --lines 1 | cut --fields 1 --delimiter ' ')"
run_in_user_context="sudo -u ${TARGET_USER}"

## Prüfen, ob ein Benutzer angemeldet ist; wenn nein shutdown, wenn ja...
USERCOUNT=$(who | wc -l)
if [ $USERCOUNT -eq 0 ]; then
    shutdown -h now
else
    ## Frage an den Benutzer ob das Herunterfahren abgebrochen werden soll.
    $run_in_user_context zenity --question --timeout=120 --text="Der PC wird in 2 Minuten abgeschaltet. Ist das OK?" --title="PC-Abschaltung" --ok-label="OK, bitte abschalten" --cancel-label="Nein, ich möchte noch Arbeiten!"
    STATUS=$?
    if [ $STATUS -eq 1 ]; then ## Nicht herunterfahren
        exit 0
    else
        for seconds_until_shutdown in $(seq 120 -30 30); do
            $run_in_user_context zenity --warning --timeout=30 --text="Der Rechner wird in $seconds_until_shutdown Sekunden heruntergefahren. Bitte abspeichern." &
            sleep 30
        done
        $run_in_user_context zenity --warning --timeout=5 --text="Der Rechner wird heruntergefahren. Auf Wiedersehen." &
        sleep 5
        shutdown -h now
    fi
fi

exit 0
