Blame completions/adb

Packit 8462d6
# adb completion                                           -*- shell-script -*-
Packit 8462d6
Packit 8462d6
_adb_command_usage()
Packit 8462d6
{
Packit 8462d6
    COMPREPLY=( $( compgen -W \
Packit 8462d6
        '$( "$1" help 2>&1 | command grep "^ *\(adb \)\? *$2 " \
Packit 8462d6
            | command sed -e "s/[]|[]/\n/g" | _parse_help - )' -- "$cur" ) )
Packit 8462d6
}
Packit 8462d6
Packit 8462d6
_adb()
Packit 8462d6
{
Packit 8462d6
    local cur prev words cword
Packit 8462d6
    _init_completion || return
Packit 8462d6
Packit 8462d6
    case $prev in
Packit 8462d6
        -s|-p|--algo|--key|--iv)
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
        -f)
Packit 8462d6
            _filedir
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
    esac
Packit 8462d6
Packit 8462d6
    local cmd i
Packit 8462d6
    for (( i=1; i < cword; i++ )); do
Packit 8462d6
        if [[ "${words[i]}" != -* && "${words[i-1]}" != -[sp] ]]; then
Packit 8462d6
            cmd="${words[i]}"
Packit 8462d6
            break
Packit 8462d6
        fi
Packit 8462d6
    done
Packit 8462d6
Packit 8462d6
    if [[ ! "$cmd" ]]; then
Packit 8462d6
        local tmp=()
Packit 8462d6
        if [[ ! $cur || $cur == -* ]]; then
Packit 8462d6
            tmp+=( $( compgen -W '$( _parse_help "$1" help )' -- "$cur" ) )
Packit 8462d6
        fi
Packit 8462d6
        if [[ ! $cur || $cur != -* ]]; then
Packit 8462d6
            tmp+=( $( $1 help 2>&1 | awk '$1 == "adb" { print $2 }' ) )
Packit 8462d6
            tmp+=( devices connect disconnect sideload )
Packit 8462d6
        fi
Packit 8462d6
        COMPREPLY=( $( compgen -W '${tmp[@]}' -- "$cur" ) )
Packit 8462d6
        return
Packit 8462d6
    fi
Packit 8462d6
Packit 8462d6
    # TODO: more and better command completions
Packit 8462d6
Packit 8462d6
    _adb_command_usage "$1" $cmd
Packit 8462d6
Packit 8462d6
    case $cmd in
Packit 8462d6
        push|restore|sideload)
Packit 8462d6
            _filedir
Packit 8462d6
            ;;
Packit 8462d6
        forward)
Packit 8462d6
            COMPREPLY=( $( compgen -W \
Packit 8462d6
                '$( "$1" help 2>&1 | command sed -ne "s/^ *adb  *forward  *-/-/p" | \
Packit 8462d6
                    _parse_help - )' -- "$cur" ) )
Packit 8462d6
            ;;
Packit 8462d6
        reboot)
Packit 8462d6
            COMPREPLY=( $( compgen -W 'bootloader recovery' -- "$cur" ) )
Packit 8462d6
            ;;
Packit 8462d6
    esac
Packit 8462d6
} &&
Packit 8462d6
complete -F _adb adb
Packit 8462d6
Packit 8462d6
# ex: filetype=sh