summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDieter Plaetinck <dieter@plaetinck.be>2010-12-12 20:12:31 +0100
committerDieter Plaetinck <dieter@plaetinck.be>2010-12-12 20:12:31 +0100
commit33d5d154c66850c118f1074f215f212fa89ee791 (patch)
treef467669c5d9deccbae60826feb1e1899cee20f38 /src
parent9f34485bed2aa77e312575dc0217d9ad672755d4 (diff)
make interactive_get_editor() more elegant
Diffstat (limited to 'src')
-rw-r--r--src/core/libs/lib-ui-interactive.sh17
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
}