From 148d75ff647feae64c563dfb73f4d650a9b14c4b Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Mon, 3 Nov 2008 20:35:36 +0100 Subject: fixes for broken interactive_configure_system, interactive_get_editor, _dia_ask_option, configure_system and worker_install_bootloader --- src/core/libs/lib-ui-interactive.sh | 82 +++++++++++++++++++++---------------- src/core/libs/lib-ui.sh | 17 +------- src/core/procedures/interactive | 8 ++-- 3 files changed, 52 insertions(+), 55 deletions(-) (limited to 'src') diff --git a/src/core/libs/lib-ui-interactive.sh b/src/core/libs/lib-ui-interactive.sh index 87c271c..3f7a0cd 100644 --- a/src/core/libs/lib-ui-interactive.sh +++ b/src/core/libs/lib-ui-interactive.sh @@ -29,41 +29,38 @@ interactive_partition() { interactive_configure_system() { - [ "$EDITOR" ] || geteditor - FILE="" - - # main menu loop - while true; do - if [ -n "$FILE" ]; then - DEFAULT="--default-item $FILE" - else - DEFAULT="" - fi - - _dia_DIALOG $DEFAULT --menu "Configuration" 17 70 10 \ - "/etc/rc.conf" "System Config" \ - "/etc/fstab" "Filesystem Mountpoints" \ - "/etc/mkinitcpio.conf" "Initramfs Config" \ - "/etc/modprobe.conf" "Kernel Modules" \ - "/etc/resolv.conf" "DNS Servers" \ - "/etc/hosts" "Network Hosts" \ - "/etc/hosts.deny" "Denied Network Services" \ - "/etc/hosts.allow" "Allowed Network Services" \ - "/etc/locale.gen" "Glibc Locales" \ - "/etc/pacman.d/mirrorlist" "Pacman Mirror List" \ - "Root-Password" "Set the root password" \ - "Return" "Return to Main Menu" 2>$ANSWER || FILE="Return" - FILE="$(cat $ANSWER)" - if [ "$FILE" = "Return" -o -z "$FILE" ]; then # exit - break - elif [ "$FILE" = "Root-Password" ]; then # non-file - while true; do - chroot ${TARGET_DIR} passwd root && break - done - else #regular file - $EDITOR ${TARGET_DIR}${FILE} - fi - done + [ "$EDITOR" ] || interactive_get_editor + FILE="" + + # main menu loop + while true; do + DEFAULT=no + [ -n "$FILE" ] && DEFAULT="$FILE" + ask_option $DEFAULT "Configuration" \ + "/etc/rc.conf" "System Config" \ + "/etc/fstab" "Filesystem Mountpoints" \ + "/etc/mkinitcpio.conf" "Initramfs Config" \ + "/etc/modprobe.conf" "Kernel Modules" \ + "/etc/resolv.conf" "DNS Servers" \ + "/etc/hosts" "Network Hosts" \ + "/etc/hosts.deny" "Denied Network Services" \ + "/etc/hosts.allow" "Allowed Network Services" \ + "/etc/locale.gen" "Glibc Locales" \ + "/etc/pacman.d/mirrorlist" "Pacman Mirror List" \ + "Root-Password" "Set the root password" \ + "Return" "Return to Main Menu" || FILE="Return" + FILE=$ANSWER_OPTION + + if [ "$FILE" = "Return" -o -z "$FILE" ]; then # exit + break + elif [ "$FILE" = "Root-Password" ]; then # non-file + while true; do + chroot ${var_TARGET_DIR} passwd root && break + done + else #regular file + $EDITOR ${var_TARGET_DIR}/${FILE} + fi + done } @@ -701,3 +698,18 @@ interactive_select_mirror() { fi echo "Using mirror: $var_SYNC_URL" >$LOG } + +# geteditor(). taken from original setup code. +# prompts the user to choose an editor +# sets EDITOR global variable +# +interactive_get_editor() { + _dia_DIALOG --menu "Select a Text Editor to Use" 10 35 3 \ + "1" "nano (easier)" \ + "2" "vi" 2>$ANSWER + case $(cat $ANSWER) in + "1") EDITOR="nano" ;; + "2") EDITOR="vi" ;; + *) EDITOR="nano" ;; + esac +} diff --git a/src/core/libs/lib-ui.sh b/src/core/libs/lib-ui.sh index 91cfca9..c3c0dcb 100644 --- a/src/core/libs/lib-ui.sh +++ b/src/core/libs/lib-ui.sh @@ -185,8 +185,10 @@ _dia_ask_option () DIA_MENU_TITLE=$2 shift 2 _dia_DIALOG $DEFAULT --colors --title " $DIA_MENU_TITLE " --menu "$DIA_MENU_TEXT" 16 55 8 "$@" 2>$ANSWER + ret=$? ANSWER_OPTION=`cat $ANSWER` echo $ANSWER_OPTION + return $ret } @@ -215,21 +217,6 @@ _cli_ask_option () } -# geteditor(). taken from original setup code. prepended dia_ because power users just export $EDITOR on the cmdline. -# prompts the user to choose an editor -# sets EDITOR global variable -# -# TODO: clean this up -_dia_get_editor() { - _dia_DIALOG --menu "Select a Text Editor to Use" 10 35 3 \ - "1" "nano (easier)" \ - "2" "vi" 2>$ANSWER - case $(cat $ANSWER) in - "1") EDITOR="nano" ;; - "2") EDITOR="vi" ;; - *) EDITOR="nano" ;; - esac -} # TODO: pass disks as argument to decouple backend logic # Get a list of available disks for use in the "Available disks" dialogs. This diff --git a/src/core/procedures/interactive b/src/core/procedures/interactive index 70ca0de..8357fe4 100644 --- a/src/core/procedures/interactive +++ b/src/core/procedures/interactive @@ -133,11 +133,8 @@ configure_system() fi - interactive_configure_system - - run_mkinitcpio - target_locale-gen - + interactive_configure_system && run_mkinitcpio && target_locale-gen && return 0 + return 1 } @@ -253,6 +250,7 @@ worker_select_mirror () # $1 which one worker_install_bootloader () { + bl=`tr '[:upper:]' '[:lower:]' <<< "$1"` [ "$1" = grub ] && interactive_install_grub && S_BOOT=grub [ "$1" != grub ] && S_BOOT="$1" } -- cgit v1.2.3-54-g00ecf