diff options
author | Emmanuel Bourg <ebourg@apache.org> | 2015-09-25 17:36:28 +0200 |
---|---|---|
committer | Emmanuel Bourg <ebourg@apache.org> | 2015-09-25 17:36:28 +0200 |
commit | 1b427e72e04f473cc4c21e43d023cd40242d9561 (patch) | |
tree | 30cb1cda5d0d5b242c2c5f375be85cc155dedbd1 /scripts/completion/update-java-alternatives | |
parent | f98980975e8f67b85c7b2008d16dca579e5b36a9 (diff) | |
download | java-common-1b427e72e04f473cc4c21e43d023cd40242d9561.tar.gz |
Added bash completion to update-java-alternatives (Closes: #777550)
Diffstat (limited to 'scripts/completion/update-java-alternatives')
-rw-r--r-- | scripts/completion/update-java-alternatives | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/scripts/completion/update-java-alternatives b/scripts/completion/update-java-alternatives new file mode 100644 index 0000000..7e5444a --- /dev/null +++ b/scripts/completion/update-java-alternatives @@ -0,0 +1,60 @@ +# +# update-java-alternatives(8) completion +# + +shopt -s dotglob + +# +# List the available alternatives +# +_update-java-alternatives_list() +{ + prog=$(basename $0) + top=/usr/lib/jvm + for i in ${jinfo:-$top/*.jinfo}; do + alias=$(basename ${i%.jinfo}) + alias=${alias#.} + echo $alias + done +} + +_update-java-alternatives() +{ + local cur prev options + + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + options=() + + # suggest an action if none was specified yet + if [[ ! " ${COMP_WORDS[@]} " =~ " --set " ]] && [[ ! " ${COMP_WORDS[@]} " =~ " -s " ]] && [[ + ! " ${COMP_WORDS[@]} " =~ " --list " ]] && [[ ! " ${COMP_WORDS[@]} " =~ " -l " ]] && [[ + ! " ${COMP_WORDS[@]} " =~ " --auto " ]] && [[ ! " ${COMP_WORDS[@]} " =~ " -a " ]] && [[ + ! " ${COMP_WORDS[@]} " =~ " --help " ]] && [[ ! " ${COMP_WORDS[@]} " =~ " -h " ]]; then + options+=( --help --list --auto --set ) + fi + + # add the --set sub options + if [[ " ${COMP_WORDS[@]} " =~ " --set " ]] || [[ " ${COMP_WORDS[@]} " =~ " -s " ]] ; then + if [[ ! " ${COMP_WORDS[@]} " =~ " --verbose " ]] && [[ ! " ${COMP_WORDS[@]} " =~ " -v " ]]; then options+=("--verbose"); fi + if [[ ! " ${COMP_WORDS[@]} " =~ " --jre " ]]; then options+=("--jre"); fi + if [[ ! " ${COMP_WORDS[@]} " =~ " --jre-headless " ]]; then options+=("--jre-headless"); fi + if [[ ! " ${COMP_WORDS[@]} " =~ " --plugin " ]]; then options+=("--plugin"); fi + fi + + case "$prev" in + -s|--set|-l|--list) + COMPREPLY=( $( compgen -W '$(_update-java-alternatives_list)' -- $cur ) ) + ;; + -h|--help) + COMPREPLY=( ) + ;; + *) + COMPREPLY=( $( compgen -W '${options[@]}' -- $cur ) ) + ;; + esac + + return 0 +} && +complete -F _update-java-alternatives update-java-alternatives |