#!/bin/sh # # AutoSta_LX Konfigurations Script # version: 0.8b # # Niels Rogalla # # # # Menu Navigation Gui # source /etc/alx-config/config.rc source /opt/alx-config/functions/mysqlfunctions source /etc/alx-config/serial #test only -del me #source ./config_functions.sh input_box() { TITLE=$1 TEXT=$2 DEFAULT=$3 dialog \ --backtitle "$TITLE" \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --inputbox "$TEXT" 8 70 "$DEFAULT" 2>$LOGFILE if [ "$?" == "1" ]; then if [ -f $LOGFILE ]; then rm -f $LOGFILE fi return 0 fi if [ "$?" == "0" ]; then RETVAL=`cat $LOGFILE` fi } dialog_save_data() { dialog \ --backtitle "$TITLE" \ --infobox "Speichere Einstellungen ..." 3 70 } dialog_save_data_db() { dialog \ --backtitle "$TITLE" \ --infobox "Speichere Einstellungen in Datenbank ..." 3 70 } dialog_save_data2() { dialog \ --clear \ --backtitle "$TITLE" \ --msgbox "Einstellungen gespeichert." 5 30 } dialog_reboot() { dialog \ --backtitle "$TITLE" \ --infobox "Starte den PC neu ..." 3 70 } dialog_shutdown(){ dialog \ --backtitle "$TITLE" \ --infobox "Fahre den PC herunter ..." 3 70 } dialog_network_menu(){ I=`dialog \ --backtitle "$TITLE" \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --stdout \ --menu "Konfiguration" 9 70 2 \ "1" "Netzwerk DHCP" \ "2" "Netzwerk Statisch" ` RES=$? if [ "$RES" == "1" ];then return 0 fi if [ "$RES" == "0" ];then case "$I" in "1") dialog_network_dhcp;; "2") dialog_network_static;; esac fi } dialog_network_dhcp(){ if [ -f $SETTINGS_TEMPLATE/menu/network/hostname ] then hostname="`cat $SETTINGS_TEMPLATE/menu/network/hostname`" else hostname="AutoSta_LX" fi if [ -f $SETTINGS_TEMPLATE/menu/network/domain ] then domain="`cat $SETTINGS_TEMPLATE/menu/network/domain`" else domain="DOM_AKA_NT" fi highlite="Hostname:" if [ -n "$ETHMOD" ];then dialog \ --colors \ --backtitle "$TITLE" \ --ok-label "Ok" \ --msgbox "Gefundene Netzwerkkarte:\n$ETH [ \Z2OK\Zn ]\n\n\nDie Karte wird dem System hinzugefügt." 10 75 mkdir -p $SETTINGS_TEMPLATE/menu/modules echo "$ETHMOD" > $SETTINGS_TEMPLATE/menu/modules/modules else dialog \ --colors \ --backtitle "$TITLE" \ --ok-label "Ok" \ --msgbox "Gefundene Netzwerkkarte:\n$ETH [ \Z1FALSE\Zn ]\n\n\nDie Karte muss dem System manuell hinzugefügt werden." 10 75 fi I=0 while test $I != 1 && test $I != 250 do value="`dialog \ --backtitle "$TITLE" \ --stdout \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --extra-label "Ändern" \ --default-item "$highlite" \ --inputmenu "Netzwerk Konfiguration (DHCP)" 16 70 9 \ "Hostname:" "$hostname" \ "Domain:" "$domain"`" I=$? #reads current position highlite="`echo "$value" |sed -e 's/:.*//' -e 's/^RENAMED //'`:" case $I in 1) return 0 ;; 0) dialog \ --backtitle "$TITLE" \ --clear \ --yesno "Sind folgende Einstellungen korrekt ? \n\n\ Network: DHCP \n\ Hostname: $hostname \n\ Domain: $domain" 15 45 case $? in 0) mkdir -p $SETTINGS_TEMPLATE/menu/network echo dhcp > $SETTINGS_TEMPLATE/menu/network/networking echo $hostname > $SETTINGS_TEMPLATE/menu/network/hostname echo $domain > $SETTINGS_TEMPLATE/menu/network/domain return 0 ;; 1) return 1 ;; esac ;; 3) tag=`echo "$value" |sed -e 's/^RENAMED //' -e 's/:.*//'` item=`echo "$value" |sed -e 's/^.*:[ ]*//' -e 's/[ ]*$//'` case "$tag" in Hostname) hostname="$item" ;; Domain) domain="$item" ;; esac esac done return 0 } dialog_network_static(){ #Liest Settings aus if [ -f $SETTINGS_TEMPLATE/menu/network/ip ] then ip="`cat $SETTINGS_TEMPLATE/menu/network/ip`" else ip="128.20.40.30" fi if [ -f $SETTINGS_TEMPLATE/menu/network/netmask ] then netmask="`cat $SETTINGS_TEMPLATE/menu/network/netmask`" else netmask="255.255.0.0" fi if [ -f $SETTINGS_TEMPLATE/menu/network/broadcast ] then broadcast="`cat $SETTINGS_TEMPLATE/menu/network/broadcast`" else broadcast="128.20.0.0" fi if [ -f $SETTINGS_TEMPLATE/menu/network/dns ] then dns=`cat $SETTINGS_TEMPLATE/menu/network/dns` else dns="128.20.50.21" fi if [ -f $SETTINGS_TEMPLATE/menu/network/gateway ] then gateway="`cat $SETTINGS_TEMPLATE/menu/network/gateway`" else gateway="128.20.50.13" fi if [ -f $SETTINGS_TEMPLATE/menu/network/hostname ] then hostname="`cat $SETTINGS_TEMPLATE/menu/network/hostname`" else hostname="AutoSta_LX" fi if [ -f $SETTINGS_TEMPLATE/menu/network/domain ] then domain="`cat $SETTINGS_TEMPLATE/menu/network/domain`" else domain="DOM_AKA_NT" fi highlite="IP:" if [ "$ETHMOD" != "kein Treiber gefunden" ];then dialog \ --colors \ --backtitle "$TITLE" \ --ok-label "Ok" \ --msgbox "Gefundene Netzwerkkarte:\n$ETH [ \Z2OK\Zn ]\n\n\nDie Karte wird dem System hinzugefügt." 10 75 mkdir -p $SETTINGS_TEMPLATE/menu/modules echo "$ETHMOD" > $SETTINGS_TEMPLATE/menu/modules/modules else dialog \ --colors \ --backtitle "$TITLE" \ --ok-label "Ok" \ --msgbox "Gefundene Netzwerkkarte:\n$ETH [ \Z1FALSE\Zn ]\n\n\nDie Karte muss dem System manuell hinzugefügt werden." 10 75 fi I=0 while test $I != 1 && test $I != 250 do value="`dialog \ --backtitle "$TITLE" \ --stdout \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --extra-label "Ändern" \ --default-item "$highlite" \ --inputmenu "Netzwerk Konfiguration (Statisch)" 16 70 9 \ "IP:" "$ip" \ "Netmask:" "$netmask" \ "Broadcast:" "$broadcast" \ "DNS:" "$dns" \ "Gateway:" "$gateway" \ "Hostname:" "$hostname" \ "Domain:" "$domain"`" I=$? #reads current position highlite="`echo "$value" |sed -e 's/:.*//'`:" case $I in 1) return 0 ;; 0) dialog \ --backtitle "$TITLE" \ --clear \ --yesno "Sind folgende Einstellungen korrekt ? \n\n\ IP: $ip \n\ Netmask: $netmask \n\ Broadcast: $broadcast \n\ DNS: $dns \n\ Gateway: $gateway \n\ Hostname: $hostname \n\ Domain: $domain" 15 45 case $? in 0) mkdir -p $SETTINGS_TEMPLATE/menu/network echo static > $SETTINGS_TEMPLATE/menu/network/networking echo $ip > $SETTINGS_TEMPLATE/menu/network/ip echo $netmask > $SETTINGS_TEMPLATE/menu/network/netmask echo $broadcast > $SETTINGS_TEMPLATE/menu/network/broadcast echo $dns > $SETTINGS_TEMPLATE/menu/network/dns echo $gateway > $SETTINGS_TEMPLATE/menu/network/gateway echo $hostname > $SETTINGS_TEMPLATE/menu/network/hostname echo $domain > $SETTINGS_TEMPLATE/menu/network/domain return 0 ;; 1) return 0 ;; esac ;; 3) tag=`echo "$value" |sed -e 's/^RENAMED //' -e 's/:.*//'` item=`echo "$value" |sed -e 's/^.*:[ ]*//' -e 's/[ ]*$//'` case "$tag" in IP) ip="$item" ;; Netmask) netmask="$item" ;; Broadcast) broadcast="$item" ;; DNS) dns="$item" ;; Gateway) gateway="$item" ;; Hostname) hostname="$item" ;; Domain) domain="$item" ;; esac esac done return 0 } dialog_grafic_menu(){ I=`dialog \ --backtitle "$TITLE" \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --stdout \ --menu "Konfiguration" 10 70 3 \ "1" "Grafikkarte konfigurieren" \ "2" "Monitor konfigurieren" \ "3" "Maus konfigurieren"` RES=$? if [ "$RES" == "1" ];then return 0 fi if [ "$RES" == "0" ];then case "$I" in "1") dialog_config_vga ;; "2") dialog_monitor_show_welcome ;; "3") dialog_config_mouse ;; esac fi } dialog_config_vga(){ vgamodule="`dialog \ --backtitle "$TITLE" \ --extra-button \ --extra-label "Treiberliste" \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --stdout \ --inputbox "Gefundene Grafikkarte: \n$VGA" 8 70 "$VGADRIV"`" returncode=$? # Abbruch gedrueckt if [ "$returncode" == "1" ] then return 0 fi # View Database gedrueckt if [ "$returncode" == "3" ] then dialog_vga_database fi # Weiter gedrueckt if [ "$returncode" == "0" ] then mkdir -p $SETTINGS_TEMPLATE/menu/vga echo "$vgamodule" > $SETTINGS_TEMPLATE/menu/vga/vga dialog_config_resolution fi } dialog_config_resolution(){ resolution=`dialog \ --backtitle "$TITLE" \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --stdout \ --radiolist "Bitte wählen Sie eine Auflösung aus:" 18 70 10 \ "1280x1024x24" "S3 don't support this" "off" \ "1024x768x24" "S3 don't support this" "on" \ "800x600x24" "S3 don't support this" "off" \ "640x480x24" "S3 don't support this" "off" \ "1280x1024x16" "" "off" \ "1024x768x16" "" "off" \ "800x600x16" "" "off" \ "640x480x16" "" "off" \ "1280x1024x8" "" "off" \ "1024x768x8" "" "off" \ "800x600x8" "" "off" \ "640x480x8" "" "off"` returncode=$? # Abbruch gedrueckt if [ "$returncode" == "1" ] then return 0 fi # Weiter gedrueckt if [ "$returncode" == "0" ] then #resturn of resolution -> "${xresolution}x${yresolution}x${vgadepth}" xresolution="$(echo ${resolution}|cut -d 'x' -f1)" yresolution="$(echo ${resolution}|cut -d 'x' -f2)" vgadepth="$(echo ${resolution}|cut -d 'x' -f3)" mkdir -p $SETTINGS_TEMPLATE/menu/vga echo "$vgadepth" > $SETTINGS_TEMPLATE/menu/vga/vgadepth echo "${xresolution}x${yresolution}" > $SETTINGS_TEMPLATE/menu/vga/vgares fi } dialog_vga_database(){ dialog \ --backtitle "$TITLE" \ --colors \ --ok-label "Zurück" \ --msgbox "Vorhandene Treiber Module:\n \ Allgemein:\n \ Name Treibermodule\n \ Ati ati\n \ S3 s3\n \ Nvidia nv\n \ Intel i810/i710\n \ SiS sis\n \ Matrox mga\n \ Cirrus Logic cirrus\n \ Trident trident\n \ Tseng Labs tseng\n \ \nSonderfälle:\n \ S3 Trio64 s3\n \ S3 Virge[DX/GX] s3virge\n \ Ati Radeon radeon\n \ Riva128 r128\n \ VMWare vesa\n \ Unbekannt vesa\n \ " 25 70 dialog_config_vga } dialog_monitor_show_welcome(){ dialog \ --backtitle "$TITLE" \ --ok-label "Weiter" \ --cancel-label "Abbrechen" \ --stdout \ --yesno "Warnung: Bei falscher Handhabung könnte der Monitor beschädigt werden.\n\n \ Möchten Sie wirklich fortfahren ?" 8 80 RES=$? if [ "$RES" == "1" ] then return 0 fi if [ "$RES" == "0" ] then get_monitor_vendor dialog_monitor_show_vendor fi } dialog_monitor_show_vendor(){ echo "dialog \\" > /tmp/montemp.sh echo "--backtitle \"$TITLE\" \\" >> /tmp/montemp.sh echo "--ok-label \"Weiter\" \\" >> /tmp/montemp.sh echo "--cancel-label \"Abbrechen\" \\" >> /tmp/montemp.sh echo "--stdout \\" >> /tmp/montemp.sh echo "--menu \\" >> /tmp/montemp.sh echo "\"Bitte wählen Sie einen Hersteller aus:\n\n\" 25 70 15 \\" >> /tmp/montemp.sh for I in $monitor do echo -e "\"$I\" \"\" \\" >> /tmp/montemp.sh done echo -e "\n" >> /tmp/montemp.sh chmod a+x /tmp/montemp.sh myvendor="`/tmp/montemp.sh`" RES=$? if [ "$RES" == "1" ] then return 0 fi if [ "$RES" == "0" ] then get_monitor_model dialog_monitor_show_model fi } dialog_monitor_show_model(){ echo "dialog \\" > /tmp/montemp.sh echo "--backtitle \"$TITLE\" \\" >> /tmp/montemp.sh echo "--ok-label \"Weiter\" \\" >> /tmp/montemp.sh echo "--cancel-label \"Abbrechen\" \\" >> /tmp/montemp.sh echo "--stdout \\" >> /tmp/montemp.sh echo "--colors \\" >> /tmp/montemp.sh echo "--menu \\" >> /tmp/montemp.sh echo "\"Bitte wählen Sie das Modell aus:\n\nHersteller: \Z1$myvendor\" 25 70 15 \\" >> /tmp/montemp.sh for I in $monmodel do echo -e "\"$I\" \"\" \\" >> /tmp/montemp.sh done echo -e "\n" >> /tmp/montemp.sh chmod a+x /tmp/montemp.sh mymodel="`/tmp/montemp.sh`" RES=$? if [ "$RES" == "1" ] then ### ein menupunk zurueck ### get_monitor_vendor dialog_monitor_show_vendor fi if [ "$RES" == "0" ] then get_monitor_settings dialog_monitor_show_settings fi } dialog_monitor_show_settings(){ dialog \ --backtitle "$TITLE" \ --ok-label "Weiter" \ --cancel-label "Abbrechen" \ --stdout \ --colors \ --yesno \ "Sollen diese Einstellungen übernommen werden ?\n\n \ Monitortyp: \Z3$myvendor $mymodel\Zn \n\n \ Sync-line: \Z3$mysettings" 10 70 RES=$? if [ "$RES" == "1" ] then return 0 fi if [ "$RES" == "0" ] then mkdir -p $SETTINGS_TEMPLATE/menu/monitor ### normale settings ### #local hsync="`echo $mysettings|cut -d ' ' -f2`" #local vref="`echo $mysettings|cut -d ' ' -f3`" ### bugfix wegen dem / in der Monitors file ### ############################################### local hsync="`echo $mysettings|cut -d ' ' -f2|sed -e 's/\//-/'`" local vref="`echo $mysettings|cut -d ' ' -f3|sed -e 's/\//-/'`" myvendor="`echo $myvendor|sed -e 's/\//-/'`" mymodel="`echo $mymodel|sed -e 's/\//-/'`" ############################################### ### Settings schreiben ### echo "hsync=\"$hsync\"" > $SETTINGS_TEMPLATE/menu/monitor/monitor echo "vref=\"$vref\"" >> $SETTINGS_TEMPLATE/menu/monitor/monitor echo "myvendor=\"$myvendor\"" >> $SETTINGS_TEMPLATE/menu/monitor/monitor echo "mymodel=\"$mymodel\"" >> $SETTINGS_TEMPLATE/menu/monitor/monitor fi } dialog_config_mouse(){ I=`dialog \ --backtitle "$TITLE" \ --ok-label "Weiter" \ --cancel-label "Abbrechen" \ --stdout \ --radiolist "Bitte wählen Sie den Maus-Typ aus:" 14 70 3 \ "IMPS/2" "PS/2 Maus mit Scrollrad" "on" \ "PS/2" "PS/2 Maus ohne Scrollrad" "off" \ "Auto" "Auto Erkennung oder Serielle Maus" "off"` RES=$? if [ "$RES" == "1" ] then return 0 fi if [ "$RES" == "0" ] then case $I in IMPS/2) mkdir -p $SETTINGS_TEMPLATE/menu/mouse echo "IMPS/2" > $SETTINGS_TEMPLATE/menu/mouse/mouse ;; PS/2) mkdir -p $SETTINGS_TEMPLATE/menu/mouse echo "PS/2" > $SETTINGS_TEMPLATE/menu/mouse/mouse ;; Auto) mkdir -p $SETTINGS_TEMPLATE/menu/mouse echo "Auto" > $SETTINGS_TEMPLATE/menu/mouse/mouse ;; esac fi } dialog_printing_menu(){ if [ -z `ls $SETTINGS_TEMPLATE/menu/printing` ] then printers="none" else printers="`ls $SETTINGS_TEMPLATE/menu/printing`" fi I="`dialog \ --backtitle "$TITLE" \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --colors \ --stdout \ --menu "Drucker Einstellungen \n\n\ vorhandene Drucker:\n\ $printers" 13 70 3 \ "1" "Drucker einrichten" \ "2" "Drucker entfernen" \ "3" "Drucker Status" `" RES=$? if [ "$RES" == "1" ];then return 0 fi if [ "$RES" == "0" ];then case $I in "1") dialog_printing_addprinter ;; "2") dialog_printing_delprinter ;; "3") dialog_printing_status ;; esac fi } dialog_printing_addprinter() { PORT="`dialog \ --backtitle "$TITLE" \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --stdout \ --radiolist "Bitte den Anschluss auswählen:" 14 70 5 \ "1" "LPT1" "on" \ "2" "COM1" "off" \ "3" "COM2" "off" \ "4" "LPR/LPD" "off" \ "5" "Socket" "off" `" RES=$? if [ "$RES" == "1" ];then return 0 fi PRINTERNAME="`dialog \ --backtitle "$TITLE" \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --stdout \ --inputbox "Bitte den Druckernamen angeben" 8 70 `" RES=$? if [ "$RES" == "1" ];then return 0 fi if [ "$PORT" == "1" ];then dialog \ --backtitle "$TITLE" \ --clear \ --yesno "Sind folgende Einstellungen korrekt ? \n\n\ Printing: LPT1 \n\ Druckername: $PRINTERNAME" 15 45 case $? in 0) mkdir -p $SETTINGS_TEMPLATE/menu/printing echo "PRINTERNAME=$PRINTERNAME" > $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "PRINTING=lpt1" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "IP=none" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "SHARE=none" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME return 0 ;; 1) return 1 ;; esac fi if [ "$PORT" == "2" ];then dialog \ --clear \ --backtitle "$TITLE" \ --yesno "Sind folgende Einstellungen korrekt ? \n\n\ Printing: COM1 \n\ Druckername: $PRINTERNAME" 15 45 case $? in 0) mkdir -p $SETTINGS_TEMPLATE/menu/printing echo "PRINTERNAME=$PRINTERNAME" > $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "PRINTING=com1" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "IP=none" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "SHARE=none" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME return 0 ;; 1) return 1 ;; esac fi if [ "$PORT" == "3" ];then dialog \ --backtitle "$TITLE" \ --clear \ --yesno "Sind folgende Einstellungen korrekt ? \n\n\ Printing: COM2 \n\ Druckername: $PRINTERNAME" 15 45 case $? in 0) mkdir -p $SETTINGS_TEMPLATE/menu/printing echo "PRINTERNAME=$PRINTERNAME" > $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "PRINTING=com2" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "IP=none" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "SHARE=none" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME return 0 ;; 1) return 1 ;; esac fi if [ "$PORT" == "4" ];then highlite="Hostname:" printerip="128.20.55.1" printershare="L_DUMMY_1" I=0 while test $I != 1 && test $I != 250 do value="`dialog \ --backtitle "$TITLE" \ --stdout \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --extra-label "Aendern" \ --default-item "$highlite" \ --inputmenu "Printer Einstellungen [LPR/LPD]" 16 70 9 \ "IP:" "$printerip" \ "Share:" "$printershare" `" I=$? #reads current position highlite="`echo "$value" |sed -e 's/:.*//'`:" case $I in 1) return 0 ;; 0) dialog \ --backtitle "$TITLE" \ --clear \ --yesno "Sind folgende Einstellungen korrekt ? \n\n\ Printing: LPD/LPR \n\ Druckername: $PRINTERNAME \n\ IP: $printerip \n\ Share: $printershare" 15 45 case $? in 0) mkdir -p $SETTINGS_TEMPLATE/menu/printing echo "PRINTERNAME=$PRINTERNAME" > $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "PRINTING=lpd" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "IP=$printerip" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "SHARE=$printershare" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME return 0 ;; 1) return 1 ;; esac ;; 3) tag=`echo "$value" |sed -e 's/^RENAMED //' -e 's/:.*//'` item=`echo "$value" |sed -e 's/^.*:[ ]*//' -e 's/[ ]*$//'` case "$tag" in IP) printerip="$item" ;; Share) printershare="$item" ;; esac esac done fi if [ "$PORT" == "5" ];then highlite="Hostname:" printerip="128.20.55.1" printershare="9100" I=0 while test $I != 1 && test $I != 250 do value="`dialog \ --backtitle "$TITLE" \ --stdout \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --extra-label "Ändern" \ --default-item "$highlite" \ --inputmenu "Printer Einstellungen [Seriell]" 16 70 9 \ "IP:" "$printerip" \ "Port:" "$printershare"`" I=$? #reads current position highlite="`echo "$value" |sed -e 's/:.*//'`:" case $I in 1) return 0 ;; 0) dialog \ --backtitle "$TITLE" \ --clear \ --yesno "Sind folgende Einstellungen korrekt ? \n\n\ Printing: Seriell \n\ Druckername: $PRINTERNAME \n\ IP: $printerip \n\ Share: $printershare" 15 45 case $? in 0) mkdir -p $SETTINGS_TEMPLATE/menu/printing echo "PRINTERNAME=$PRINTERNAME" > $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "PRINTING=socket" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "IP=$printerip" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME echo "SHARE=$printershare" >> $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME return 0 ;; 1) return 1 ;; esac ;; 3) tag=`echo "$value" |sed -e 's/^RENAMED //' -e 's/:.*//'` item=`echo "$value" |sed -e 's/^.*:[ ]*//' -e 's/[ ]*$//'` case "$tag" in IP) printerip="$item" ;; Share) printershare="$item" ;; esac esac done fi } dialog_printing_delprinter() { if [ -z `ls $SETTINGS_TEMPLATE/menu/printing` ] then printers="none" else printers="`ls $SETTINGS_TEMPLATE/menu/printing`" fi if [ "$printers" != "none" ] then PRINTERNAME="`dialog \ --backtitle "$TITLE" \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --stdout \ --inputbox "Bitte den Druckernamen eingeben:\n$printers" 8 70`" RES=$? if [ "$RES" == "1" ];then return 0 fi if [ "$RES" == "0" ];then source $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME dialog \ --backtitle "$TITLE" \ --clear \ --yesno "Soll folgender Drucker wirklich gelöscht werden ? \n\n\ Druckername: $PRINTERNAME \n\ Printing: $PRINTING \n\ IP: $IP \n\ Share: $SHARE" 15 45 case $? in 0) mkdir -p $SETTINGS_TEMPLATE/menu/delete mv $SETTINGS_TEMPLATE/menu/printing/$PRINTERNAME $SETTINGS_TEMPLATE/menu/delete return 0 ;; 1) return 1 ;; esac fi else dialog \ --backtitle "$TITLE" \ --clear \ --ok-label "Weiter" \ --msgbox "Keine Drucker zum löschen vorhanden." 5 40 fi } dialog_printing_status() { sleep 1 } dialog_sessions(){ get_sessions AUSWAHL=`$WORK/sessiondialog` RES=$? if [ "$RES" == "1" ];then return 0 fi if [ "$RES" == "0" ];then mkdir -p $SETTINGS_TEMPLATE/menu/sessions ## Inhalt von sessions loeschen echo -n "" > $SETTINGS_TEMPLATE/menu/sessions/sessions for I in $AUSWAHL do SESSIONS=`cat $WORK/sessionlist|grep $I|cut -d ' ' -f2` SESSIONS=`echo $SESSIONS|cut -d '"' -f2` echo "$SESSIONS" >> $SETTINGS_TEMPLATE/menu/sessions/sessions done fi } dialog_check_hardware(){ if [ $VGADRIV != "kein Treiber gefunden" ] then VGACHECK="[ \Z2OK\Zn ]" else VGACHECK="[ \Z1FALSE\Zn ]" fi if [ -n "${ETHMOD}" ] then ETHCHECK="[ \Z2OK\Zn ]" else ETHCHECK="[ \Z1FALSE\Zn ]" fi dialog \ --backtitle "$TITLE" \ --colors \ --ok-label "Weiter" \ --msgbox "Automatisch gefundene Hardware: \n\n\ \Z3Grafik:\Zn\n\ \Z7$VGA $VGACHECK\Zn\n\n\ \Z3Netzwerk:\Zn\n\ \Z7$ETH $ETHCHECK\Zn\ " 11 81 } dialog_view_config(){ failuremsg="\Z1Nicht konfiguriert\Zn" if [ -f $SETTINGS_TEMPLATE/menu/network/hostname ] then local hostname="`cat $SETTINGS_TEMPLATE/menu/network/hostname`" else local hostame="$failuremsg" fi if [ -f $SETTINGS_TEMPLATE/menu/network/domain ] then local domain="`cat $SETTINGS_TEMPLATE/menu/network/domain`" else local domain="$failuremsg" fi if [ -f $SETTINGS_TEMPLATE/menu/network/networking ] then local networking="`cat $SETTINGS_TEMPLATE/menu/network/networking`" if [ "$networking" == "dhcp" ] then local networking="DHCP" local ip="DHCP" local netmask="DHCP" local broadcast="DHCP" local dns="DHCP" local gateway="DHCP" else local ip="`cat $SETTINGS_TEMPLATE/menu/network/ip`" local netmask="`cat $SETTINGS_TEMPLATE/menu/network/netmask`" local broadcast="`cat $SETTINGS_TEMPLATE/menu/network/broadcast`" local dns="`cat $SETTINGS_TEMPLATE/menu/network/dns`" local gateway="`cat $SETTINGS_TEMPLATE/menu/network/gateway`" fi else local networking="$failuremsg" local ip="$failuremsg" local netmask="$failuremsg" local broadcast="$failuremsg" local dns="$failuremsg" local gateway="$failuremsg" fi if [ -f $SETTINGS_TEMPLATE/menu/vga/vga ] then local vga="`cat $SETTINGS_TEMPLATE/menu/vga/vga`" else local vga="$failuremsg" fi if [ -f $SETTINGS_TEMPLATE/menu/monitor/monitor ] then source $SETTINGS_TEMPLATE/menu/monitor/monitor local monitor="$myvendor $mymodel" else local monitor="$failuremsg" fi if [ -f $SETTINGS_TEMPLATE/menu/mouse/mouse ] then local mouse="`cat $SETTINGS_TEMPLATE/menu/mouse/mouse`" else local mouse="$failuremsg" fi if [ -z `ls $SETTINGS_TEMPLATE/menu/printing` ] then local printers="$failuremsg" else local printers="`ls $SETTINGS_TEMPLATE/menu/printing`" fi if [ -f $SETTINGS_TEMPLATE/menu/sessions/sessions ] then local sessions="`cat $SETTINGS_TEMPLATE/menu/sessions/sessions|sed -e 's/.ica//'`" else local sessions="$failuremsg" fi version="$ALXVER" dialog \ --backtitle "$TITLE" \ --colors \ --ok-label "Weiter" \ --msgbox "Aktuelle Systemkonfiguration:\n \ \Z7Netzwerk-Einstellungen:\Zn\n \ \Z7Computername:\Zn \Z3$hostname\Zn\n \ \Z7Domain:\Zn \Z3$domain\Zn\n \ \Z7Networking:\Zn \Z3$networking\Zn\n \ \Z7IP:\Zn \Z3$ip\Zn\n \ \Z7Netmask:\Zn \Z3$netmask\Zn\n \ \Z7Broadcast:\Zn \Z3$broadcast\Zn\n \ \Z7DNS:\Zn \Z3$dns\Zn\n \ \Z7Gateway:\Zn \Z3$gateway\Zn\n \ \Z7XServer-Einstellungen:\Zn \n \ \Z7Vga Treiber:\Zn \Z3$vga\Zn\n \ \Z7Monitor: \Z3$monitor\Zn\n \ \Z7Maus:\Zn \Z3$mouse\Zn\n \ \Z7Drucker-Einstellungen:\Zn \n \ \Z7Drucker:\Zn \Z3$printers\Zn\n \ \Z7Session-Einstellungen:\Zn \n \ \Z7Sessions:\Zn \Z3$sessions\Zn\n \ \Z7System-Information:\Zn \n \ \Z7Version:\Zn \Z3$version\Zn\n \ " 24 70 } dialog_common(){ local i local RES i=`dialog \ --backtitle "$TITLE" \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --colors \ --stdout \ --menu "Passwörter" 11 70 4 \ "1" "Root Passwort" \ "2" "User Passwort" \ "3" "Samba Passwort" \ "4" "VNC Passwort"` RES=$? if [ "$RES" == "1" ];then return 1 fi if [ "$RES" == "0" ];then case "$i" in "1") dialog_password setup_password_root ;; "2") dialog_password setup_password_user ;; "3") dialog_password setup_password_samba ;; "4") dialog_password setup_password_vnc ;; esac fi } dialog_password(){ dialog \ --backtitle "$TITLE" \ --ok-label "Weiter" \ --colors \ --msgbox "Achtung:\n\nDie Änderungen für Passwörter wirken sofort." 12 70 setup_vnc_password } dialog_serives(){ local i local RES local status_samba local status_cups local status_inetd local status_xdm local status_network ret_ok="\\Z2ok\\Zn" ret_false="\\Z1false\\Zn" status_samba=$(get_service_status samba && echo $ret_ok || echo $ret_false) status_cups=$(get_service_status cups && echo $ret_ok || echo $ret_false) status_inetd=$(get_service_status inetd && echo $ret_ok || echo $ret_false) status_xdm=$(get_service_status xdm && echo $ret_ok || echo $ret_false) status_network=$(get_service_status network) i=`dialog \ --backtitle "$TITLE" \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --colors \ --stdout \ --menu "Dienste \n\n \ Status:\n\ Samba [ ${status_samba} ]\n\ Cups [ ${status_cups} ]\n\ Inetd [ ${status_inetd} ]\n\ Xdm [ ${status_xdm} ]\n\ Network [ IP: ${status_network} ]\n\ " 21 70 6 \ "1" "Windows Freigabe Dienst (Samba)" \ "2" "Printserver (cups)" \ "3" "LPR-Printserver (inetd)" \ "4" "Grafische Oberfläche (xdm)" \ "5" "Netzwerk" \ "6" "Alle Dienste neustarten"` RES=$? if [ "$RES" == "1" ];then return 1 fi if [ "$RES" == "0" ];then case "${i}" in "1") dialog_service_options samba ;; "2") dialog_service_options cups ;; "3") dialog_service_options inetd ;; "4") dialog_service_options xdm ;; "5") dialog_service_options network ;; "6") for i in network cups inetd samba xdm do dialog_service_message "Starte '${i}' neu ..." service_setup ${i} restart &> /dev/null done ;; esac fi } #$1=service dialog_service_options(){ local i local RES local service service=$1 i=`dialog \ --backtitle "$TITLE" \ --cancel-label "Abbrechen" \ --ok-label "Weiter" \ --colors \ --stdout \ --menu "Dienst: ${service}" 10 70 3 \ "1" "${service} neustarten" \ "2" "${service} starten" \ "3" "${service} anhalten"` RES=$? if [ "$RES" == "1" ];then return 1 fi if [ "$RES" == "0" ];then case "${i}" in "1") dialog_service_message "Starte '${service}' neu ..." service_setup ${service} restart &> /dev/null ;; "2") dialog_service_message "Starte '${service}' ..." service_setup ${service} start &> /dev/null ;; "3") dialog_service_message "Stoppe '${service}' ..." service_setup ${service} stop &> /dev/null ;; esac fi } #service=$1 command=$2 dialog_service_message(){ local message message=$1 dialog \ --backtitle "$TITLE" \ --infobox "${message}" 3 70 } dialog_main(){ METHOD=-1 while [ $METHOD -le 8 ] do METHOD=`dialog \ --backtitle "$TITLE" \ --extra-button \ --extra-label "Speichern" \ --cancel-label "Beenden" \ --ok-label "Weiter" \ --stdout \ --menu "Konfiguration" 18 70 11 \ "1" "Netzwerk Einstellungen" \ "2" "Grafik & Maus Einstellungen" \ "3" "Drucker Einstellungen" \ "4" "Auswahl der ICA-Sessions" \ "5" "Passwörter" \ "6" "Dienste" \ "7" "Übersicht der Hardware" \ "8" "Momentane Einstellungen" \ "9" "Neustarten" \ "10" "Herunterfahren" \ "11" "Speichern und Neustarten"` RES=$? if [ "$RES" == "1" ];then clear settings_cleanup return 0 fi if [ "$RES" == "0" ];then case "$METHOD" in "1") dialog_network_menu ;; "2") dialog_grafic_menu ;; "3") dialog_printing_menu ;; "4") dialog_sessions ;; "5") dialog_common ;; "6") dialog_serives ;; "7") dialog_check_hardware ;; "8") dialog_view_config ;; "9") dialog_reboot settings_cleanup reboot ;; "10") dialog_shutdown settings_cleanup shutdown ;; "11") setup_xfree setup_modules setup_network setup_printers setup_sessions save_settings_to_database dialog_save_data2 check_first_boot settings_cleanup clear reboot ;; esac fi if [ "$RES" == "3" ];then setup_xfree setup_modules setup_network setup_printers setup_sessions save_settings_to_database dialog_save_data2 check_first_boot ### um ins menu zurueck zu gelangen METHOD=8 fi done return 0 } ### System configs kopieren wenn vorhanden if [ -d $SETTINGS_TEMPLATE/system ] then mkdir -p $SETTINGS_TEMPLATE/menu rm -rf $SETTINGS_TEMPLATE/menu/* cp -R $SETTINGS_TEMPLATE/system/* $SETTINGS_TEMPLATE/menu fi if [ -z "$1" -o "$1" != "install" ] then dialog_main exit 0 fi