diff options
Diffstat (limited to 'completions/_adb')
-rw-r--r-- | completions/_adb | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/completions/_adb b/completions/_adb new file mode 100644 index 00000000..52b2cb96 --- /dev/null +++ b/completions/_adb @@ -0,0 +1,69 @@ +# adb completion -*- shell-script -*- + +# Use of this file is deprecated. Upstream completion is available in +# the Android SDK, use that instead. + +_adb_command_usage() +{ + COMPREPLY=( $(compgen -W \ + '$("$1" help 2>&1 | command grep "^ *\(adb \)\? *$2 " \ + | command 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]}" != -[sp] ]]; 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 | command sed -ne "s/^ *adb *forward *-/-/p" | \ + _parse_help -)' -- "$cur") ) + ;; + reboot) + COMPREPLY=( $(compgen -W 'bootloader recovery' -- "$cur") ) + ;; + esac +} && +complete -F _adb adb + +# ex: filetype=sh |