You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.5 KiB
Bash
62 lines
1.5 KiB
Bash
set -euo pipefail;
|
|
export TERM="${TERM:-linux}"; # Fix term var if launched without term
|
|
if [ "$TERM" = "dumb" -o "$TERM" = "unknown" ]; then
|
|
export TERM=linux;
|
|
fi
|
|
tput civis; # Hide cursor
|
|
|
|
function read_key() {
|
|
read -n 1 -s "$@";
|
|
}
|
|
|
|
function setup_failed() {
|
|
cat <<EOF
|
|
Einrichtung fehlgeschlagen, bitte melden Sie dies Ihrem Systemadministrator!
|
|
Sonst können Sie auch versuchen, das System erneut mit dem Installationsmedium aufzusetzen.
|
|
Drücken Sie eine beliebige Taste, um das System herunterzufahren
|
|
EOF
|
|
read_key;
|
|
systemctl poweroff;
|
|
exit 0;
|
|
}
|
|
|
|
function setup_finished() {
|
|
echo "Einrichtung abgeschlossen, drücken Sie eine beliebige Taste, um das System neu zu starten";
|
|
read_key;
|
|
systemctl reboot;
|
|
exit 0;
|
|
}
|
|
|
|
function ask_yes_no() {
|
|
local var="$1";
|
|
local question="$2";
|
|
while true; do
|
|
echo "$question [j|n]";
|
|
local answer="";
|
|
read_key answer;
|
|
if [[ "$answer" == [jJyY] ]]; then
|
|
export "$var"=true;
|
|
return 0;
|
|
elif [[ "$answer" == [nN] ]]; then
|
|
export "$var"=false;
|
|
return 0;
|
|
fi
|
|
done
|
|
}
|
|
|
|
function retry_on_fail() {
|
|
local repeat_msg="$1";
|
|
c=0;
|
|
while ! "${@:2}"; do
|
|
echo "$repeat_msg";
|
|
((c+=1));
|
|
if [[ $c -ge 2 ]]; then
|
|
ask_yes_no retry "Es scheint ein system-bedingter Fehler zu sein, möchten Sie es dennoch erneut versuchen?";
|
|
if ! $retry; then
|
|
setup_failed;
|
|
exit 1;
|
|
fi
|
|
fi
|
|
done
|
|
}
|