%PDF- %PDF-
Direktori : /snap/core20/2434/usr/share/bash-completion/completions/ |
Current File : //snap/core20/2434/usr/share/bash-completion/completions/rpmbuild |
# 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 -eq 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 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