Blame completions/sbopkg

Packit 8462d6
# bash completion for sbopkg(8)                            -*- shell-script -*-
Packit 8462d6
Packit 8462d6
_sbopkg()
Packit 8462d6
{
Packit 8462d6
    local cur prev words cword
Packit 8462d6
    _init_completion || return
Packit 8462d6
Packit 8462d6
    if [[ "$cur" == -* ]]; then
Packit 8462d6
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) )
Packit 8462d6
        [[ $COMPREPLY ]] && return
Packit 8462d6
    fi
Packit 8462d6
Packit 8462d6
    case "$prev" in
Packit 8462d6
        -e)
Packit 8462d6
            COMPREPLY=( $( compgen -W 'ask continue stop' -- "$cur" ) )
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
        -f)
Packit 8462d6
            _filedir
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
        -d)
Packit 8462d6
            _filedir -d
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
        -V)
Packit 8462d6
            COMPREPLY=( $( compgen -W "?
Packit 8462d6
                $( sbopkg -V ? 2>&1 | cut -s -f1 )" -- "$cur" ) )
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
        -i|-b)
Packit 8462d6
            ;;
Packit 8462d6
        *)
Packit 8462d6
            return
Packit 8462d6
            ;;
Packit 8462d6
    esac
Packit 8462d6
Packit 8462d6
    local i config
Packit 8462d6
    config="/etc/sbopkg/sbopkg.conf"
Packit 8462d6
    for (( i=${#words[@]}-1; i>0; i-- )); do
Packit 8462d6
        if [[ "${words[i]}" == -f ]]; then
Packit 8462d6
            config="${words[i+1]}"
Packit 8462d6
            __expand_tilde_by_ref config
Packit 8462d6
            break
Packit 8462d6
        fi
Packit 8462d6
    done
Packit 8462d6
Packit 8462d6
    [[ -r "$config" ]] || return
Packit 8462d6
    . $config
Packit 8462d6
Packit 8462d6
    for (( i=1; i<${#words[@]}; i++ )); do
Packit 8462d6
        case "${words[i]}" in
Packit 8462d6
            -V)
Packit 8462d6
                REPO_NAME="${words[i+1]%%/*}"
Packit 8462d6
                REPO_BRANCH="${words[i+1]#*/}"
Packit 8462d6
                ;;
Packit 8462d6
            -d)
Packit 8462d6
                REPO_ROOT="${words[i+1]}"
Packit 8462d6
                ;;
Packit 8462d6
        esac
Packit 8462d6
    done
Packit 8462d6
    [[ -r $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT ]] || return
Packit 8462d6
Packit 8462d6
    COMPREPLY=( $( command sed -ne "/^SLACKBUILD NAME: $cur/{s/^SLACKBUILD NAME: //;p}"\
Packit 8462d6
        $REPO_ROOT/$REPO_NAME/$REPO_BRANCH/SLACKBUILDS.TXT )
Packit 8462d6
        $( cd $QUEUEDIR; compgen -f -X "!*.sqf"  -- "$cur" ) )
Packit 8462d6
} &&
Packit 8462d6
complete -F _sbopkg sbopkg
Packit 8462d6
Packit 8462d6
# ex: filetype=sh