From 33d5d154c66850c118f1074f215f212fa89ee791 Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Sun, 12 Dec 2010 20:12:31 +0100 Subject: make interactive_get_editor() more elegant --- src/core/libs/lib-ui-interactive.sh | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'src/core/libs') diff --git a/src/core/libs/lib-ui-interactive.sh b/src/core/libs/lib-ui-interactive.sh index 3fd1665..5b622d0 100644 --- a/src/core/libs/lib-ui-interactive.sh +++ b/src/core/libs/lib-ui-interactive.sh @@ -1266,17 +1266,14 @@ interactive_select_mirror() { # interactive_get_editor() { unset EDITOR_OPTS - which nano &>/dev/null && EDITOR_OPTS+=("nano" "nano (easier)") - which joe &>/dev/null && EDITOR_OPTS+=("joe" "joe's editor") - which vi &>/dev/null && EDITOR_OPTS+=("vi" "vi (advanced)") + declare -A editors=(["nano"]="nano (easier)" ["joe"]="joe (bit more powerful)" ["vi"]="vi (advanced)") + for editor in ${!editors[@]} + do + which $editor &>/dev/null && EDITOR_OPTS+=($editor "${editors[$editor]}") + done ask_option nano "Text editor selection" "Select a Text Editor to Use" required "${EDITOR_OPTS[@]}" || return 1 - #TODO: this code could be a little bit cleaner. - case $ANSWER_OPTION in - "nano") EDITOR="nano" ;; - "joe") EDITOR="joe" ;; - "vi") EDITOR="vi" ;; - *) EDITOR="nano" ;; - esac + EDITOR=nano + check_is_in "$ANSWER_OPTION" "${!editors[@]}" && EDITOR=$ANSWER_OPTION } -- cgit v1.2.3-54-g00ecf