[java-common] 02/03: Added bash completion to update-java-alternatives (Closes: #777550)

Emmanuel Bourg ebourg-guest at moszumanska.debian.org
Fri Sep 25 16:13:24 UTC 2015


This is an automated email from the git hooks/post-receive script.

ebourg-guest pushed a commit to branch master
in repository java-common.

commit 1b427e72e04f473cc4c21e43d023cd40242d9561
Author: Emmanuel Bourg <ebourg at apache.org>
Date:   Fri Sep 25 17:36:28 2015 +0200

    Added bash completion to update-java-alternatives (Closes: #777550)
---
 debian/changelog                            |  1 +
 debian/java-common.install                  |  1 +
 scripts/completion/update-java-alternatives | 60 +++++++++++++++++++++++++++++
 3 files changed, 62 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 0ba299e..0ca4f03 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ java-common (0.54) UNRELEASED; urgency=medium
 
   * Team upload.
   * Use OpenJDK 8 on mips, mipsel and mips64el.
+  * update-java-alternatives now supports bash completion (Closes: #777550)
   * Removed the unused classpath-from-jars-1 example
   * Removed the old dummy control files
   * Removed the README about the old default-jdk-builddep transition
diff --git a/debian/java-common.install b/debian/java-common.install
new file mode 100644
index 0000000..de8c434
--- /dev/null
+++ b/debian/java-common.install
@@ -0,0 +1 @@
+scripts/completion/update-java-alternatives usr/share/bash-completion/completions
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

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/java-common.git



More information about the pkg-java-commits mailing list