diff options
author | Dieter Plaetinck <dieter@plaetinck.be> | 2010-12-12 20:12:31 +0100 |
---|---|---|
committer | Dieter Plaetinck <dieter@plaetinck.be> | 2010-12-12 20:12:31 +0100 |
commit | 33d5d154c66850c118f1074f215f212fa89ee791 (patch) | |
tree | f467669c5d9deccbae60826feb1e1899cee20f38 | |
parent | 9f34485bed2aa77e312575dc0217d9ad672755d4 (diff) |
make interactive_get_editor() more elegant
-rw-r--r-- | src/core/libs/lib-ui-interactive.sh | 17 |
1 files changed, 7 insertions, 10 deletions
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 } |