[Bash-completion-commits] [bash-completion] 01/01: adb: New completion
Ville Skyttä
scop-guest at moszumanska.debian.org
Tue Jul 1 14:34:55 UTC 2014
This is an automated email from the git hooks/post-receive script.
scop-guest pushed a commit to branch master
in repository bash-completion.
commit 4bbab196cbce908dacbc225de71433272228a985
Author: Ville Skyttä <ville.skytta at iki.fi>
Date: Tue Jul 1 17:34:42 2014 +0300
adb: New completion
---
completions/Makefile.am | 1 +
completions/adb | 66 ++++++++++++++++++++++++++++++++++++++++++++
test/completion/adb.exp | 1 +
test/lib/completions/adb.exp | 18 ++++++++++++
4 files changed, 86 insertions(+)
diff --git a/completions/Makefile.am b/completions/Makefile.am
index 535b09d..da071ff 100644
--- a/completions/Makefile.am
+++ b/completions/Makefile.am
@@ -5,6 +5,7 @@ bashcomp_DATA = 2to3 \
abook \
aclocal \
acpi \
+ adb \
add_members \
alias \
ant \
diff --git a/completions/adb b/completions/adb
new file mode 100644
index 0000000..80c9627
--- /dev/null
+++ b/completions/adb
@@ -0,0 +1,66 @@
+# adb completion -*- shell-script -*-
+
+_adb_command_usage()
+{
+ COMPREPLY=( $( compgen -W \
+ '$( "$1" help 2>&1 | command grep "^ *\(adb \)\? *$2 " \
+ | sed -e "s/[]|[]/\n/g" | _parse_help - )' -- "$cur" ) )
+}
+
+_adb()
+{
+ local cur prev words cword
+ _init_completion || return
+
+ case $prev in
+ -s|-p|--algo|--key|--iv)
+ return
+ ;;
+ -f)
+ _filedir
+ return
+ ;;
+ esac
+
+ local cmd i
+ for (( i=1; i < cword; i++ )); do
+ if [[ "${words[i]}" != -* && "${words[i-1]}" != -@(s|p) ]]; then
+ cmd="${words[i]}"
+ break
+ fi
+ done
+
+ if [[ ! "$cmd" ]]; then
+ local tmp=()
+ if [[ ! $cur || $cur == -* ]]; then
+ tmp+=( $( compgen -W '$( _parse_help "$1" help )' -- "$cur" ) )
+ fi
+ if [[ ! $cur || $cur != -* ]]; then
+ tmp+=( $( $1 help 2>&1 | awk '$1 == "adb" { print $2 }' ) )
+ tmp+=( devices connect disconnect sideload )
+ fi
+ COMPREPLY=( $( compgen -W '${tmp[@]}' -- "$cur" ) )
+ return
+ fi
+
+ # TODO: more and better command completions
+
+ _adb_command_usage "$1" $cmd
+
+ case $cmd in
+ push|restore|sideload)
+ _filedir
+ ;;
+ forward)
+ COMPREPLY=( $( compgen -W \
+ '$( "$1" help 2>&1 | sed -ne "s/^ *adb *forward *-/-/p" | \
+ _parse_help - )' -- "$cur" ) )
+ ;;
+ reboot)
+ COMPREPLY=( $( compgen -W 'bootloader recovery' -- "$cur" ) )
+ ;;
+ esac
+} &&
+complete -F _adb adb
+
+# ex: ts=4 sw=4 et filetype=sh
diff --git a/test/completion/adb.exp b/test/completion/adb.exp
new file mode 100644
index 0000000..0da0ad1
--- /dev/null
+++ b/test/completion/adb.exp
@@ -0,0 +1 @@
+assert_source_completions adb
diff --git a/test/lib/completions/adb.exp b/test/lib/completions/adb.exp
new file mode 100644
index 0000000..0d41fd2
--- /dev/null
+++ b/test/lib/completions/adb.exp
@@ -0,0 +1,18 @@
+proc setup {} {
+ save_env
+}
+
+
+proc teardown {} {
+ assert_env_unmodified
+}
+
+
+setup
+
+
+assert_complete_any "adb "
+sync_after_int
+
+
+teardown
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/bash-completion/bash-completion.git
More information about the Bash-completion-commits
mailing list