CasperSecurity

Current Path : /usr/share/bash-completion/completions/
Upload File :
Current File : //usr/share/bash-completion/completions/rpm

# bash completion for rpm                                  -*- shell-script -*-

# helper functions

_rpm_installed_packages()
{
    if [[ -r /var/log/rpmpkgs && \
        /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]]; then
        # using RHL 7.2 or later - this is quicker than querying the DB
        COMPREPLY=($(compgen -W "$(command sed -ne \
            's|^\([^[:space:]]\{1,\}\)-[^[:space:]-]\{1,\}-[^[:space:]-]\{1,\}\.rpm$|\1|p' \
            /var/log/rpmpkgs)" -- "$cur"))
    elif type rpmqpack &>/dev/null; then
        # SUSE's rpmqpack is faster than rpm -qa
        COMPREPLY=($(compgen -W '$(rpmqpack)' -- "$cur"))
    else
        COMPREPLY=($(${1:-rpm} -qa --nodigest --nosignature \
            --queryformat='%{NAME} ' "$cur*" 2>/dev/null))
    fi
}

_rpm_groups()
{
    local IFS=$'\n'
    COMPREPLY=($(compgen -W "$(${1:-rpm} -qa --nodigest --nosignature \
        --queryformat='%{GROUP}\n' 2>/dev/null)" -- "$cur"))
}

_rpm_macros()
{
    # get a list of macros
    COMPREPLY=($(compgen -W "$(${1:-rpm} --showrc | command sed -ne \
        's/^-\{0,1\}[0-9]\{1,\}[:=][[:space:]]\{1,\}\([^[:space:](]\{3,\}\).*/%\1/p')" \
        -- "$cur"))
}

_rpm_buildarchs()
{
    COMPREPLY=($(compgen -W "$(${1:-rpm} --showrc | command sed -ne \
        's/^\s*compatible\s\s*build\s\s*archs\s*:\s*\(.*\)/\1/ p')" \
        -- "$cur"))
}

# rpm(8) completion
#
_rpm()
{
    local cur prev words cword split
    _init_completion -s || return

    if ((cword == 1)); then
        # first parameter on line
        case $cur in
            --*)
                COMPREPLY=($(compgen -W '--help --version --initdb
                    --checksig --addsign --delsign --rebuilddb --showrc
                    --setperms --setugids --eval --install --upgrade --query
                    --freshen --erase --verify --querytags --import' \
                    -- "$cur"))
                ;;
            *)
                COMPREPLY=($(compgen -W '-e -E -F -i -q -t -U -V' -- "$cur"))
                ;;
        esac
        return
    fi

    case $prev in
        --dbpath | --excludepath | --prefix | --relocate | --root | -!(-*)r)
            _filedir -d
            return
            ;;
        --eval | -!(-*)E)
            _rpm_macros $1
            return
            ;;
        --pipe)
            compopt -o filenames
            COMPREPLY=($(compgen -c -- "$cur"))
            return
            ;;
        --rcfile)
            _filedir
            return
            ;;
        --specfile)
            # complete on .spec files
            _filedir spec
            return
            ;;
        --whatenhances | --whatprovides | --whatrecommends | --whatrequires | \
            --whatsuggests | --whatsupplements)
            if [[ $cur == */* ]]; then
                _filedir
            else
                # complete on capabilities
                local IFS=$'\n' fmt
                case $prev in
                    *enhances) fmt="%{ENHANCENAME}" ;;
                    *provides) fmt="%{PROVIDENAME}" ;;
                    *recommends) fmt="%{RECOMMENDNAME}" ;;
                    *requires) fmt="%{REQUIRENAME}" ;;
                    *suggests) fmt="%{SUGGESTNAME}" ;;
                    *supplements) fmt="%{SUPPLEMENTNAME}" ;;
                esac
                COMPREPLY=($(compgen -W "$($1 -qa --nodigest --nosignature \
                    --queryformat=\"$fmt\\n\" 2>/dev/null |
                    command grep -vF '(none)')" -- "$cur"))
            fi
            return
            ;;
        --define | --fileid | --hdrid | --pkgid | -!(-*)D)
            # argument required but no completions available
            return
            ;;
    esac

    $split && return

    # options common to all modes
    local opts="--define= --eval= --macros= --nodigest --nosignature --rcfile=
        --quiet --pipe --verbose"

    case ${words[1]} in
        -[iFU]* | --install | --freshen | --upgrade)
            if [[ $cur == -* ]]; then
                COMPREPLY=($(compgen -W "$opts --percent --force --test
                --replacepkgs --replacefiles --root --excludedocs --includedocs
                --noscripts --ignorearch --dbpath --prefix= --ignoreos --nodeps
                --allfiles --ftpproxy --ftpport --justdb --httpproxy --httpport
                --noorder --relocate= --badreloc --notriggers --excludepath=
                --ignoresize --oldpackage --queryformat --repackage
                --nosuggests" -- "$cur"))
            else
                _filedir '[rs]pm'
            fi
            ;;
        -e | --erase)
            if [[ $cur == -* ]]; then
                COMPREPLY=($(compgen -W "$opts --allmatches --noscripts
                    --notriggers --nodeps --test --repackage" -- "$cur"))
            else
                _rpm_installed_packages $1
            fi
            ;;
        -q* | --query)
            # options common to all query types
            opts+=" --changelog --configfiles --conflicts --docfiles --dump
                --enhances --filesbypkg --filecaps --fileclass --filecolor
                --fileprovide --filerequire --filesbypkg --info --list
                --obsoletes --pipe --provides --queryformat= --requires
                --scripts --suggests --triggers --xml --recommends
                --supplements --filetriggers --licensefiles"

            if [[ ${words[*]} == *\ -@(*([^ -])f|-file )* ]]; then
                # -qf completion
                if [[ $cur == -* ]]; then
                    COMPREPLY=($(compgen -W "$opts --dbpath --fscontext
                        --last --root --state" -- "$cur"))
                else
                    _filedir
                fi
            elif [[ ${words[*]} == *\ -@(*([^ -])g|-group )* ]]; then
                # -qg completion
                _rpm_groups $1
            elif [[ ${words[*]} == *\ -@(*([^ -])p|-package )* ]]; then
                # -qp; uninstalled package completion
                if [[ $cur == -* ]]; then
                    COMPREPLY=($(compgen -W "$opts --ftpport --ftpproxy
                        --httpport --httpproxy --nomanifest" -- "$cur"))
                else
                    _filedir '[rs]pm'
                fi
            else
                # -q; installed package completion
                if [[ $cur == -* ]]; then
                    COMPREPLY=($(compgen -W "$opts --all --file --fileid
                        --dbpath --fscontext --ftswalk --group --hdrid --last
                        --package --pkgid --root= --specfile --state
                        --triggeredby --whatenhances --whatprovides
                        --whatrecommends --whatrequires --whatsuggests
                        --whatsupplements" \
                        -- "$cur"))
                elif [[ ${words[*]} != *\ -@(*([^ -])a|-all )* ]]; then
                    _rpm_installed_packages $1
                fi
            fi
            ;;
        -K* | --checksig)
            if [[ $cur == -* ]]; then
                COMPREPLY=($(compgen -W "$opts --nopgp --nogpg --nomd5" \
                    -- "$cur"))
            else
                _filedir '[rs]pm'
            fi
            ;;
        -[Vy]* | --verify)
            if [[ $cur == -* ]]; then
                COMPREPLY=($(compgen -W "$opts --root= --dbpath --nodeps
                    --nogroup --nolinkto --nomode --nomtime --nordev --nouser
                    --nofiles --noscripts --nomd5 --querytags --specfile
                    --whatenhances --whatprovides --whatrecommends
                    --whatrequires --whatsuggests --whatsupplements" \
                    -- "$cur"))
            # check whether we're doing file completion
            elif [[ ${words[*]} == *\ -@(*([^ -])f|-file )* ]]; then
                _filedir
            elif [[ ${words[*]} == *\ -@(*([^ -])g|-group )* ]]; then
                _rpm_groups $1
            elif [[ ${words[*]} == *\ -@(*([^ -])p|-package )* ]]; then
                _filedir '[rs]pm'
            else
                _rpm_installed_packages $1
            fi
            ;;
        --resign | --addsign | --delsign)
            _filedir '[rs]pm'
            ;;
        --setperms | --setgids)
            _rpm_installed_packages $1
            ;;
        --import | --dbpath | --root)
            if [[ $cur == -* ]]; then
                COMPREPLY=($(compgen -W '--import --dbpath --root=' \
                    -- "$cur"))
            else
                _filedir
            fi
            ;;
    esac
    [[ ${COMPREPLY-} == *= ]] && compopt -o nospace
} &&
    complete -F _rpm rpm

_rpmbuild()
{
    local cur prev words cword split
    _init_completion -s || return

    local rpm="${1%build*}"
    [[ $rpm == "$1" ]] || ! type $rpm &>/dev/null && rpm=

    case $prev in
        --buildroot | --root | --dbpath | -!(-*)r)
            _filedir -d
            return
            ;;
        --target)
            _rpm_buildarchs $rpm
            return
            ;;
        --eval | -!(-*)E)
            _rpm_macros $rpm
            return
            ;;
        --macros | --rcfile)
            _filedir
            return
            ;;
        --buildpolicy)
            local cfgdir=$($rpm --eval '%{_rpmconfigdir}' 2>/dev/null)
            if [[ $cfgdir ]]; then
                COMPREPLY=($(compgen -W "$(command ls $cfgdir 2>/dev/null |
                    command sed -ne 's/^brp-//p')" -- "$cur"))
            fi
            ;;
        --define | --with | --without | -!(-*)D)
            return
            ;;
    esac

    $split && return

    if [[ $cur == -* ]]; then
        COMPREPLY=($(compgen -W "$(_parse_help "$1")" -- "$cur"))
        [[ ${COMPREPLY-} == *= ]] && compopt -o nospace
        return
    fi

    # Figure out file extensions to complete
    local word ext
    for word in "${words[@]}"; do
        case $word in
            -b? | --clean | --nobuild)
                ext=spec
                break
                ;;
            -t? | --tarbuild)
                ext='@(t?(ar.)@([gx]z|bz?(2))|tar?(.@(lzma|Z)))'
                break
                ;;
            --rebuild | --recompile)
                ext='@(?(no)src.r|s)pm'
                break
                ;;
        esac
    done
    [[ -n $ext ]] && _filedir $ext
} &&
    complete -F _rpmbuild rpmbuild rpmbuild-md5

# ex: filetype=sh
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY