Blame completions/svk

Packit 8462d6
# svk(1) completion                                        -*- shell-script -*-
Packit 8462d6
Packit 8462d6
_svk()
Packit 8462d6
{
Packit 8462d6
    local cur prev words cword
Packit 8462d6
    _init_completion || return
Packit 8462d6
Packit 8462d6
    local commands options command
Packit 8462d6
Packit 8462d6
    commands='add admin annotate ann blame praise cat checkout co cleanup
Packit 8462d6
        cmerge cm commit ci copy cp delete del remove rm depotmap depot
Packit 8462d6
        describe desc diff di help h ? import info list ls log merge mirror mi
Packit 8462d6
        mkdir move mv ren rename patch propdel pd pdel propedit pe pedit
Packit 8462d6
        propget pg pget proplist pl plist propset ps pset pull push resolved
Packit 8462d6
        revert smerge sm status st stat switch sw sync sy update up verify'
Packit 8462d6
Packit 8462d6
    if [[ $cword -eq 1 ]] ; then
Packit 8462d6
        if [[ "$cur" == -* ]]; then
Packit 8462d6
            COMPREPLY=( $( compgen -W '--version' -- "$cur" ) )
Packit 8462d6
        else
Packit 8462d6
            COMPREPLY=( $( compgen -W "$commands" -- "$cur" ) )
Packit 8462d6
        fi
Packit 8462d6
    else
Packit 8462d6
        case $prev in
Packit 8462d6
            -F|--file|--targets)
Packit 8462d6
                _filedir
Packit 8462d6
                return
Packit 8462d6
                ;;
Packit 8462d6
            --encoding)
Packit 8462d6
                COMPREPLY=( $( compgen -W \
Packit 8462d6
                    '$( iconv --list | command sed -e "s@//@@;" )' -- "$cur" ) )
Packit 8462d6
                return
Packit 8462d6
                ;;
Packit 8462d6
        esac
Packit 8462d6
Packit 8462d6
        command=${words[1]}
Packit 8462d6
Packit 8462d6
        if [[ "$cur" == -* ]]; then
Packit 8462d6
            # possible options for the command
Packit 8462d6
            case $command in
Packit 8462d6
                add)
Packit 8462d6
                    options=' --non-recursive -N -q --quiet'
Packit 8462d6
                    ;;
Packit 8462d6
                blame|annotate|ann|praise)
Packit 8462d6
                    options='-r --revisions -x --cross'
Packit 8462d6
                    ;;
Packit 8462d6
                cat)
Packit 8462d6
                    options='-r --revision'
Packit 8462d6
                    ;;
Packit 8462d6
                checkout|co)
Packit 8462d6
                    options='-r --revision -q --quiet -N --non-recursive -l
Packit 8462d6
                        --list -d --detach --export --relocate --purge'
Packit 8462d6
                    ;;
Packit 8462d6
                cleanup)
Packit 8462d6
                    options='-a --all'
Packit 8462d6
                    ;;
Packit 8462d6
                cmerge|cm)
Packit 8462d6
                    options='-c --change -l --log -r --revision -a --auto
Packit 8462d6
                        --verbatim --no-ticket -m --message -F --file
Packit 8462d6
                        --template --encoding -P --patch -S --sign -C
Packit 8462d6
                        --check-only --direct'
Packit 8462d6
                    ;;
Packit 8462d6
                commit|ci)
Packit 8462d6
                    options='--import -m --message -F --file --encoding
Packit 8462d6
                        --template -P --patch -S --sign -C --check-only -N
Packit 8462d6
                        --non-recursive --direct'
Packit 8462d6
                    ;;
Packit 8462d6
                copy|cp)
Packit 8462d6
                    options='-r --revision -p --parent -q --quiet -m --message
Packit 8462d6
                        -F --file --template --encoding -P --patch -S --sign -C
Packit 8462d6
                        --check-only --direct'
Packit 8462d6
                    ;;
Packit 8462d6
                delete|del|remove|rm)
Packit 8462d6
                    options='-k --keep-local -m --message -F --file --encoding
Packit 8462d6
                        --template -P --patch -S --sign -C --check-only
Packit 8462d6
                        --direct'
Packit 8462d6
                    ;;
Packit 8462d6
                depotmap|depot)
Packit 8462d6
                    options='-i --init -l --list -d --detach --relocate'
Packit 8462d6
                    ;;
Packit 8462d6
                diff|di)
Packit 8462d6
                    options='-r --revision -s --summarize -b --verbose -N
Packit 8462d6
                        --non-recursive'
Packit 8462d6
                    ;;
Packit 8462d6
                import)
Packit 8462d6
                    options='-f --from-checkout -t --to-checkout -m --message
Packit 8462d6
                        -F --file --template --encoding -P --patch -S --sign -C
Packit 8462d6
                        --check-only -N --non-recursive --direct'
Packit 8462d6
                    ;;
Packit 8462d6
                list|ls)
Packit 8462d6
                    options='-r --revision -v --verbose -R --recursive -d
Packit 8462d6
                        --depth -f --full-path'
Packit 8462d6
                    ;;
Packit 8462d6
                log)
Packit 8462d6
                    options='-r --revision -l --limit -q --quiet -x --cross -v
Packit 8462d6
                        --verbose'
Packit 8462d6
                    ;;
Packit 8462d6
                merge)
Packit 8462d6
                    options='-r --revision -c --change -I --incremental -a
Packit 8462d6
                        --auto -l --log -s --sync -t --to -f --from --verbatim
Packit 8462d6
                        --no-ticket --track-rename -m --message -F --file
Packit 8462d6
                        --template --encoding -P --patch -S --sign -C
Packit 8462d6
                        --check-only --direct'
Packit 8462d6
                    ;;
Packit 8462d6
                mirror|mi)
Packit 8462d6
                    options='-l --list -d --detach --relocate --recover
Packit 8462d6
                        --unlock --upgrade'
Packit 8462d6
                    ;;
Packit 8462d6
                mkdir)
Packit 8462d6
                    options='-p --parent -m --message -F --file --template
Packit 8462d6
                        --encoding -P --patch -S --sign -C --check-only
Packit 8462d6
                        --direct'
Packit 8462d6
                    ;;
Packit 8462d6
                move|mv|rename|ren)
Packit 8462d6
                    options='-r --revision -p --parent -q --quiet -m --message
Packit 8462d6
                        -F --file --encoding --template -P --patch -S --sign -C
Packit 8462d6
                        --check-only --direct'
Packit 8462d6
                    ;;
Packit 8462d6
                patch)
Packit 8462d6
                    options='--depot'
Packit 8462d6
                    ;;
Packit 8462d6
                propdel|propset|pdel|pset|pd|ps)
Packit 8462d6
                    options='-R --recursive -r --revision --revprop -m
Packit 8462d6
                        --message -F --file --template --encoding -P --patch -S
Packit 8462d6
                        --sign -C --check-only -q --quiet --direct'
Packit 8462d6
                    ;;
Packit 8462d6
                propedit|pedit|pe)
Packit 8462d6
                    options='-R --recursive -r --revision --revprop -m
Packit 8462d6
                        --message -F --file --template --encoding -P --patch
Packit 8462d6
                        -S --sign -C --check-only --direct'
Packit 8462d6
                    ;;
Packit 8462d6
                propget|pget|pg)
Packit 8462d6
                    options='-R --recursive -r --revision --revprop --strict'
Packit 8462d6
                    ;;
Packit 8462d6
                proplist|plist|pl)
Packit 8462d6
                    options='-R --recursive -v --verbose -r --revision
Packit 8462d6
                        --revprop'
Packit 8462d6
                    ;;
Packit 8462d6
                pull)
Packit 8462d6
                    options='-a --all -l --lump'
Packit 8462d6
                    ;;
Packit 8462d6
                push)
Packit 8462d6
                    options='-f --from -l --lump -C --check -P --patch -S
Packit 8462d6
                        --sign --verbatim'
Packit 8462d6
                    ;;
Packit 8462d6
                resolved)
Packit 8462d6
                    options='-R --recursive'
Packit 8462d6
                    ;;
Packit 8462d6
                revert)
Packit 8462d6
                    options='-R --recursive -q --quiet'
Packit 8462d6
                    ;;
Packit 8462d6
                smerge|sm)
Packit 8462d6
                    options='-I --incremental -l --log -B --baseless -b --base
Packit 8462d6
                        -s --sync -t --to -f --from --verbatim --no-ticket
Packit 8462d6
                        --track-rename --host --remoterev -m --message -F
Packit 8462d6
                        --file --template --encoding -P --patch -S --sign -C
Packit 8462d6
                        --check-only --direct'
Packit 8462d6
                    ;;
Packit 8462d6
                status|stat|st)
Packit 8462d6
                    options='-q --quiet --no-ignore -N --non-recursive -v
Packit 8462d6
                        --verbose'
Packit 8462d6
                    ;;
Packit 8462d6
                switch|sw)
Packit 8462d6
                    options='-r --revision -d --detach -q --quiet'
Packit 8462d6
                    ;;
Packit 8462d6
                sync|sy)
Packit 8462d6
                    options='-a --all -s --skipto -t --torev'
Packit 8462d6
                    ;;
Packit 8462d6
                update|up)
Packit 8462d6
                    options='-r --revision -N --non-recursive -C --check-only
Packit 8462d6
                        -s --sync -m --merge -q --quiet'
Packit 8462d6
                    ;;
Packit 8462d6
            esac
Packit 8462d6
            options+=" --help -h"
Packit 8462d6
Packit 8462d6
            COMPREPLY=( $( compgen -W "$options" -- "$cur" ) )
Packit 8462d6
        else
Packit 8462d6
            case $command in
Packit 8462d6
                help|h|\?)
Packit 8462d6
                    COMPREPLY=( $( compgen -W "$commands environment commands
Packit 8462d6
                        intro" -- "$cur" ) )
Packit 8462d6
                    ;;
Packit 8462d6
                admin)
Packit 8462d6
                    COMPREPLY=( $( compgen -W 'help deltify dump hotcopy
Packit 8462d6
                        list-dblogs list-unused-dblogs load lstxns recover
Packit 8462d6
                        rmtxns setlog verify rmcache' -- "$cur" ) )
Packit 8462d6
                    ;;
Packit 8462d6
                patch)
Packit 8462d6
                    COMPREPLY=( $( compgen -W '--ls --list --cat --view
Packit 8462d6
                        --regen --regenerate --up --update --apply --rm
Packit 8462d6
                        --delete' -- "$cur" ) )
Packit 8462d6
                    ;;
Packit 8462d6
                sync)
Packit 8462d6
                    COMPREPLY=( $( compgen -W "$( $1 mirror --list \
Packit 8462d6
                        2>/dev/null | awk '/^\//{print $1}' )" -- "$cur" ) )
Packit 8462d6
                    ;;
Packit 8462d6
                co|checkout|push|pull)
Packit 8462d6
                    if [[ "$cur" == //*/* ]]; then
Packit 8462d6
                        path=${cur%/*}/
Packit 8462d6
                    else
Packit 8462d6
                        path=//
Packit 8462d6
                    fi
Packit 8462d6
                    COMPREPLY=( $( compgen -W "$( $1 list $path 2>/dev/null | \
Packit 8462d6
                        command sed -e 's|\(.*\)|'$path'\1|')" -- "$cur" ) )
Packit 8462d6
                    ;;
Packit 8462d6
                *)
Packit 8462d6
                    _filedir
Packit 8462d6
                    ;;
Packit 8462d6
            esac
Packit 8462d6
        fi
Packit 8462d6
    fi
Packit 8462d6
} &&
Packit 8462d6
complete -F _svk svk
Packit 8462d6
Packit 8462d6
# ex: filetype=sh