summaryrefslogtreecommitdiff
path: root/scripts/completion/update-java-alternatives
diff options
context:
space:
mode:
authorEmmanuel Bourg <ebourg@apache.org>2015-09-25 17:36:28 +0200
committerEmmanuel Bourg <ebourg@apache.org>2015-09-25 17:36:28 +0200
commit1b427e72e04f473cc4c21e43d023cd40242d9561 (patch)
tree30cb1cda5d0d5b242c2c5f375be85cc155dedbd1 /scripts/completion/update-java-alternatives
parentf98980975e8f67b85c7b2008d16dca579e5b36a9 (diff)
downloadjava-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-alternatives60
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