From 4210dfa756e60ba6270a7448e91b1c34f947f9af Mon Sep 17 00:00:00 2001 From: Gustav Geier <gustav.geier@fsmpi.rwth-aachen.de> Date: Fri, 14 Mar 2014 15:16:11 +0100 Subject: [PATCH] Updated scripts --- scripts/linuxparty.sh | 194 ++++++++++++++++++++++-------------- scripts/mount-stick-repo.sh | 6 ++ 2 files changed, 127 insertions(+), 73 deletions(-) diff --git a/scripts/linuxparty.sh b/scripts/linuxparty.sh index 3ef9b45..96c78c7 100644 --- a/scripts/linuxparty.sh +++ b/scripts/linuxparty.sh @@ -2,6 +2,11 @@ set -e +#options for GUI are kdialog zenity no +if [ -z "$GUI" ]; then + GUI=kdialog +fi + MY_DIR="$( readlink -f "$( dirname "${BASH_SOURCE[0]}" )" )" HIVE_DIR="$MY_DIR/../hive/" #we assume here that the LIP install stick is mounted at /media/MultiBoot... better idea? @@ -100,25 +105,6 @@ preinstalledpkgs() { done } -askyesno() { - while true - do - read -n1 -p "$1 [j,n]" - echo - case "$REPLY" in - y|Y|j|J) return 0;; - n|N) return 1;; - *) echo 'Antworte bitte mit "j" für "Ja" oder "n" für "Nein"' ;; - esac - done -} - -pressenter() { - echo $@ - echo "Drücke <Enter> um fortzufahren (Strg-C zum Abbrechen)" - read -} - bright() { # gruen echo -ne "\033[1m$@\033[0m" @@ -138,42 +124,122 @@ warn() { echo -e "\033[0m" # normal } -err() { - echo - echo -ne "\033[31;7m" # rot - echo -n "$@" - echo -e "\033[0m" # normal -} - -install_pkgs() { - #ACHTUNG: nicht vorausgewählte Packete werden _nie_ installiert! - local arg=$3[@] - pkglist=$(preinstalledpkgs $3) - - if [ -n "$pkglist" ]; then - apt-install $pkglist - ok "$pkglist installiert" - else - ok "Keine Packete installiert" - fi -} - -if [ -z "$NOGUI" ]; then - -#overwrite functions with graphical replacements -askyesno() { - zenity --question --text "$@" 2> /dev/null -} - -err() { - zenity --error --text "$@" 2> /dev/null -} - -pressenter() { - zenity --info --text "$@" 2> /dev/null -} - -fi +case "$GUI" in + no) + askyesno() { + while true + do + read -n1 -p "$1 [j,n]" + echo + case "$REPLY" in + y|Y|j|J) return 0;; + n|N) return 1;; + *) echo 'Antworte bitte mit "j" für "Ja" oder "n" für "Nein"' ;; + esac + done + } + + pressenter() { + echo $@ + echo "Drücke <Enter> um fortzufahren (Strg-C zum Abbrechen)" + read + } + + err() { + echo + echo -ne "\033[31;7m" # rot + echo -n "$@" + echo -e "\033[0m" # normal + } + + install_pkgs() { + #ACHTUNG: nicht vorausgewählte Packete werden _nie_ installiert! + local arg=$3[@] + pkglist=$(preinstalledpkgs $3) + + if [ -n "$pkglist" ]; then + apt-install $pkglist + ok "$pkglist installiert" + else + ok "Keine Packete installiert" + fi + } + ;; + zenity) + askyesno() { + zenity --question --text "$@" 2> /dev/null + } + + err() { + zenity --error --text "$@" 2> /dev/null + } + + pressenter() { + zenity --info --text "$@" 2> /dev/null + } + install_pkgs() { + local pkglist=$3[@] + INSTALL=$(zenity --list --title "$1" --text "$2" --checklist --separator=" " --width=786 --height=400 --column "Installieren?" --column "Packet" --column "Beschreibung" "${!pkglist}" 2> /dev/null || true) + + if [ -n "$INSTALL" ]; then + apt-install $INSTALL + ok "$INSTALL installiert" + else + ok "Keine Packete installiert" + fi + } + ;; + kdialog) + askyesno() { + kdialog --yesno "$@" 2> /dev/null + } + + err() { + kdialog --error "$@" 2> /dev/null + } + + pressenter() { + kdialog --msgbox "$@" 2> /dev/null + } + install_pkgs() { + local pkglist=$3[@] + local nlist="" + local n=0 + local tag="" + local text="" + local use="" + for e in $pkglist; do + case n in + 0) + use="$e" + n=1 + ;; + 1) + tag="$e" + n=2 + ;; + 2) + text="$e" + nlist="$nlist $tag \"$tag: $text\" $use" + n=0 + ;; + esac + done + INSTALL=$(kdialog --width=786 --height=400 --title "$1" --checklist $nlist 2> /dev/null || true) + + if [ -n "$INSTALL" ]; then + apt-install $INSTALL + ok "$INSTALL installiert" + else + ok "Keine Packete installiert" + fi + } + ;; + *) + echo "Ungültige GUI Option '$GUI'. Möglich Werte sind 'kdialog', 'zenity' oder 'no'" + exit 1 + ;; +esac # Verbose error trapping showerr() { @@ -185,24 +251,6 @@ apt-install() { apt-get install --quiet -y --force-yes $@ } - -if [ -z "$NOGUI" ]; then - -#graphical installations -install_pkgs() { - local pkglist=$3[@] - INSTALL=$(zenity --list --title "$1" --text "$2" --checklist --separator=" " --width=786 --height=400 --column "Installieren?" --column "Packet" --column "Beschreibung" "${!pkglist}" 2> /dev/null || true) - - if [ -n "$INSTALL" ]; then - apt-install $INSTALL - ok "$INSTALL installiert" - else - ok "Keine Packete installiert" - fi -} - -fi - install_common() { install_pkgs "Allg. Packete installieren?" "Programme, die der OSAK/die ALUG für sinnvoll hält, sind bereits zur Installation vorselektiert.\nWenn du keine Packete aus der Liste installieren willst, einfach Abbrechen.\nBitte beachten: Das LIP-Script deinstalliert keine Packete, insbesondere also keine Packete die in einem früheren Lauf aktiv waren,\nund diesmal nicht ausgewählt sind!" COMMON_PKGS } diff --git a/scripts/mount-stick-repo.sh b/scripts/mount-stick-repo.sh index 5e779d6..36978d8 100644 --- a/scripts/mount-stick-repo.sh +++ b/scripts/mount-stick-repo.sh @@ -3,6 +3,9 @@ set -e #find device DEV="$(blkid -t "LABEL=MultiBoot" -o device | head -n1 || echo '')" +if [ -z "$DEV" ]; then + DEV="$(blkid -t "LABEL=MULTIBOOT" -o device | head -n1 || echo '')" +fi PS3="[1,2,3]<Enter>: " while [ -z "$DEV" ]; do @@ -14,6 +17,9 @@ while [ -z "$DEV" ]; do case $i in "Stick ist jetzt gesteckt") DEV="$(blkid -t "LABEL=MultiBoot" -o device | head -n1 || echo '')" + if [ -z "$DEV" ]; then + DEV="$(blkid -t "LABEL=MULTIBOOT" -o device | head -n1 || echo '')" + fi ;; "Ohne Stick weitermachen") DEV='-nomount-' -- GitLab