diff options
Diffstat (limited to 'completions/rpm')
-rw-r--r-- | completions/rpm | 86 |
1 files changed, 43 insertions, 43 deletions
diff --git a/completions/rpm b/completions/rpm index a66534a6..6b4e66fa 100644 --- a/completions/rpm +++ b/completions/rpm @@ -7,7 +7,7 @@ _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 "$( sed -ne \ + 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 @@ -29,14 +29,14 @@ _rpm_groups() _rpm_macros() { # get a list of macros - COMPREPLY=( $( compgen -W "$( ${1:-rpm} --showrc | sed -ne \ + 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 | sed -ne \ + COMPREPLY=( $( compgen -W "$( ${1:-rpm} --showrc | command sed -ne \ 's/^\s*compatible\s\s*build\s\s*archs\s*:\s*\(.*\)/\1/ p' )" \ -- "$cur" ) ) } @@ -63,63 +63,60 @@ _rpm() -- "$cur" ) ) ;; esac - return 0 + return fi case $prev in --dbpath|--excludepath|--prefix|--relocate|--root|-r) _filedir -d - return 0 + return ;; --eval|-E) _rpm_macros $1 - return 0 + return ;; --pipe) compopt -o filenames COMPREPLY=( $( compgen -c -- "$cur" ) ) - return 0 + return ;; --rcfile) _filedir - return 0 + return ;; --specfile) # complete on .spec files _filedir spec - return 0 + return ;; - --whatprovides) + --whatenhances|--whatprovides|--whatrecommends|--whatrequires|\ + --whatsuggests|--whatsupplements) if [[ "$cur" == */* ]]; then _filedir else # complete on capabilities - local IFS=$'\n' + 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='%{PROVIDENAME}\n' 2>/dev/null )" \ - -- "$cur" ) ) + --queryformat=\"%{$fmt}\\n\" 2>/dev/null | + command grep -vF '(none)' )" -- "$cur" ) ) fi - return 0 - ;; - --whatrequires) - if [[ "$cur" == */* ]]; then - _filedir - else - # complete on capabilities - local IFS=$'\n' - COMPREPLY=( $( compgen -W "$( $1 -qa --nodigest --nosignature \ - --queryformat='%{REQUIRENAME}\n' 2>/dev/null )" \ - -- "$cur" ) ) - fi - return 0 + return ;; --define|-D|--fileid|--hdrid|--pkgid) # argument required but no completions available - return 0 + return ;; esac - $split && return 0 + $split && return # options common to all modes local opts="--define= --eval= --macros= --nodigest --nosignature --rcfile= @@ -153,7 +150,8 @@ _rpm() --enhances --filesbypkg --filecaps --fileclass --filecolor --fileprovide --filerequire --filesbypkg --info --list --obsoletes --pipe --provides --queryformat= --requires - --scripts --suggests --triggers --xml" + --scripts --suggests --triggers --xml --recommends + --supplements --filetriggers" if [[ ${words[@]} == *\ -@(*([^ -])f|-file )* ]]; then # -qf completion @@ -180,7 +178,9 @@ _rpm() COMPREPLY=( $( compgen -W "$opts --all --file --fileid --dbpath --fscontext --ftswalk --group --hdrid --last --package --pkgid --root= --specfile --state - --triggeredby --whatprovides --whatrequires" \ + --triggeredby --whatenhances --whatprovides + --whatrecommends --whatrequires --whatsuggests + --whatsupplements" \ -- "$cur" ) ) elif [[ ${words[@]} != *\ -@(*([^ -])a|-all )* ]]; then _rpm_installed_packages $1 @@ -200,7 +200,9 @@ _rpm() COMPREPLY=( $( compgen -W "$opts --root= --dbpath --nodeps --nogroup --nolinkto --nomode --nomtime --nordev --nouser --nofiles --noscripts --nomd5 --querytags --specfile - --whatrequires --whatprovides" -- "$cur" ) ) + --whatenhances --whatprovides --whatrecommends + --whatrequires --whatsuggests --whatsupplements" \ + -- "$cur" ) ) # check whether we're doing file completion elif [[ ${words[@]} == *\ -@(*([^ -])f|-file )* ]]; then _filedir @@ -228,8 +230,6 @@ _rpm() ;; esac [[ $COMPREPLY == *= ]] && compopt -o nospace - - return 0 } && complete -F _rpm rpm @@ -244,45 +244,45 @@ _rpmbuild() case $prev in --buildroot|--root|-r|--dbpath) _filedir -d - return 0 + return ;; --target) _rpm_buildarchs - return 0 + return ;; --eval|-E) _rpm_macros $rpm - return 0 + return ;; --macros|--rcfile) _filedir - return 0 + return ;; --buildpolicy) local cfgdir=$( $rpm --eval '%{_rpmconfigdir}' 2>/dev/null ) if [[ $cfgdir ]]; then COMPREPLY=( $( compgen -W "$( command ls $cfgdir 2>/dev/null \ - | sed -ne 's/^brp-//p' )" -- "$cur" ) ) + | command sed -ne 's/^brp-//p' )" -- "$cur" ) ) fi ;; --define|-D|--with|--without) - return 0 + return ;; esac - $split && return 0 + $split && return if [[ $cur == -* ]]; then COMPREPLY=( $( compgen -W "$( _parse_help "$1" )" -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace - return 0 + return fi # Figure out file extensions to complete local word ext for word in ${words[@]}; do case $word in - -b?) + -b?|--clean|--nobuild) ext=spec break ;; @@ -300,4 +300,4 @@ _rpmbuild() } && complete -F _rpmbuild rpmbuild rpmbuild-md5 -# ex: ts=4 sw=4 et filetype=sh +# ex: filetype=sh |