summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Completion/Linux/_rpm278
1 files changed, 0 insertions, 278 deletions
diff --git a/Completion/Linux/_rpm b/Completion/Linux/_rpm
deleted file mode 100644
index 69e4b612b..000000000
--- a/Completion/Linux/_rpm
+++ /dev/null
@@ -1,278 +0,0 @@
-#compdef rpm
-
-# This uses `_arguments' in a state-machine kind of way. These states
-# have names and before executing the default action for such a state
-# we try to call a function with the name `_rpm_<state>'. If such a
-# function exists, we return with its return status immediately. This
-# allows users to override the default completions by simply defining
-# these functions.
-# The states (and possible values for the `<state>' above) are:
-#
-# query
-# complete for `rpm -q' query
-# verify
-# complete for `rpm --verify'
-# install
-# complete for `rpm -i' or `rpm --install'
-# upgrade
-# complete for `rpm -U' or `rpm --upgrade'
-# uninstall
-# complete for `rpm -e' or `rpm --erase'
-# build_b
-# complete for `rpm -bx' (the stage `x' is already completed)
-# build_t
-# complete for `rpm -tx' (the stage `x' is already completed)
-# sigcheck
-# complete for `rpm --sigcheck'
-# rebuild
-# complete for `rpm --rebuild'
-# package
-# complete a RPM package name
-# package_file
-# complete a RPM package file name
-# package_or_file
-# the previous two together
-# tags
-# complete a tag name
-# capability
-# complete a capability
-# relocate
-# complete a `old=new' pair of paths
-
-# Used by `_arguments', made local here.
-
-_rpm () {
- local curcontext="$curcontext" state lstate line nm="$compstate[nmatches]"
- typeset -A opt_args
-
- state=''
-
- local ret=1
- local -a tmp expl commonopts packageopts
- commonopts=(
- '*-v[verbose mode]'
- '--rcfile:resource file:_files'
- '--ftpproxy:FTP proxy server:_hosts'
- '--ftpport:FTP port number:'
- '--httpproxy:HTTP proxy server:_hosts'
- '--httpport:HTTP port number:'
- )
- packageopts=(
- '-a[query all packages]'
- '-p[query uninstalled package file]:*:RPM package file:->package_file'
- '-f[specify file to query owner of]:file:_files'
- '--triggeredby:RPM package:->package'
- '--whatprovides:RPM capability:->capability'
- '--whatrequires:RPM capability:->capability'
- )
- pathopts=(
- '--root:RPM root directory:_files -/'
- '--dbpath:RPM database path:_files -/'
- )
-
- # Do simple completions or get the first state.
-
- _arguments -C -s \
- '--help[print help message]' \
- '--version[print version number]' \
- "${commonopts[@]}" \
- '-q+[query mode]:*:query:->query' \
- --{querytags,initdb,showrc} \
- '--pipe:pipe command:_command_names -e' \
- -{V,y}'[verify mode]:*:verify:->verify' \
- '--verify[verify mode]:*:verify:->verify' \
- '--setperms[set file permissions]:*:package:->setattrs' \
- '--setugids[set file owner/group]:*:package:->setattrs' \
- '(--install)-i+[install mode]:*:install:->install' \
- '(-i)--install:*:install:->install' \
- '(--upgrade)-U+[upgrade mode]:*:upgrade:->upgrade' \
- '(-U)--upgrade:*:upgrade:->upgrade' \
- '(--freshen)-F+[freshen mode]:*:upgrade:->upgrade' \
- '(-F)--freshen:*:upgrade:->upgrade' \
- '(--erase)-e+[uninstall mode]:*:uninstall:->uninstall' \
- '(-e)--erase:*:uninstall:->uninstall' \
- '-b+[build mode (spec file)]:build stage:((p\:execute\ \%prep\ stage l\:do\ a\ list\ check c\:execute\ build\ stage i\:execute\ install\ stage b\:build\ a\ binary\ package a\:build\ binary\ and\ source\ packages)):*:build:->build_b' \
- '(-b)-t+[build mode (tar file)]:build stage:((p\:execute\ \%prep\ stage l\:do\ a\ list\ check c\:execute\ build\ stage i\:execute\ install\ stage b\:build\ a\ binary\ package a\:build\ binary\ and\ source\ packages)):*:build:->build_t' \
- --{resign,addsign}':*:RPM package:->package_file' \
- '--rmsource:*:spec file:->spec_file' \
- --{rebuild,recompile}':*:Src RPM files:->package_src' \
- '(--checksig)-K+[signature check mode]:*:sigcheck:->sigcheck' \
- '(-K)--checksig:*:sigcheck:->sigcheck' \
- '--rebuilddb:*:rebuild:->rebuild' && ret=0
-
- # As long as we have a state name...
-
- while [[ -n "$state" ]]; do
-
- # First try to call a user-defined function.
-
- _funcall ret _rpm_$state && return ret
-
- # Copy the state and reset `state', to simplify the test above.
-
- lstate="$state"
- state=''
- tmp=()
-
- # Dispatch...
-
- case "$lstate" in
- query)
- # --dump requires on of -{l,c,d}
- # --triggers requires --script
- _arguments -s \
- -q "${commonopts[@]}" "${packageopts[@]}" "${pathopts[@]}" \
- '--queryformat:RPM query format:->tags' \
- '-i[display package information]' \
- '--changelog[display change log]' \
- '-l[display package file list]' \
- '-s[show file states]' \
- '-d[documentation files only]' \
- '-c[configuration files only]' \
- '--dump[show all information]' \
- --provides \
- -{R,-requires}'[list dependencies]' \
- '--scripts[show (un)install scripts]' \
- '--triggers[show trigger scripts]' \
- '*:RPM package:->package_or_file' && ret=0
- ;;
- setattrs)
- _arguments -s --set{perm,ugids} "${packageopts[@]}" && ret = 0
- ;;
- verify)
- _arguments -s \
- '(-y --verify)-V' '(-V --verify)-y' '(-y -V)--verify' \
- "${commonopts[@]}" "${pathopts[@]}" \
- --no{deps,md5,files} \
- '*:RPM package:->package' && ret=0
- ;;
- upgrade)
- tmp=( '(--upgrade)-U' '(-U)--upgrade' '(--force)--oldpackage' )
- ;&
- install)
- (( $#tmp )) || tmp=( '(--install)-i' '(-i)--install' )
- _arguments -s "$tmp[@]" \
- "${commonopts[@]}" "${pathopts[@]}" \
- '--excludepath:exclude files in following path:_files -/' \
- '--relocate:relocate:->relocate' \
- '--prefix:package prefix directory:_files -/' \
- '(-h)--hash' '(--hash)-h' \
- '(--replacepkgs --replacefiles --oldpackage)--force' \
- '(--force)--'{replacefiles,replacepkgs} \
- --{badreloc,excludedocs,allfiles,ignorearch,ignoreos,includedocs,justdb,nodeps,noorder,noscripts,notriggers,percent,test} \
- '*:pkg file:->package_file' && ret=0
- ;;
- uninstall)
- _arguments -s \
- '(-e)--erase' '(--erase)-e' \
- "${commonopts[@]}" "${pathopts[@]}" \
- --{allmatches,justdb,nodeps,noorder,noscripts,notriggers} \
- '*:RPM package:->package' && ret=0
- ;;
- build_b)
- tmp=( '*:spec file:_files -g \*.spec' )
- ;&
- build_t)
- (( $#tmp )) || tmp=( '*:tar file:_files -g \*.\(\#i\)tar\(.\*\|\)' )
-
- _arguments -s \
- "${commonopts[@]}" "${pathopts[@]}" \
- --{short-circuit,clean,rmsource,sign,test} \
- '--target:specify a build target:->target'\
- '--buildroot:build root directory:_files -/' \
- '--buildarch:architecture for which to build:->target' \
- '--buildos:ositecture for which to build:' \
- '--timecheck:time check (seconds):' "$tmp[1]" && ret=0
- ;;
- sigcheck)
- _arguments -s \
- '(-K)--checksig' '(--checksig)-K' \
- "${commonopts[@]}" \
- --no{pgp,md5} \
- '*:RPM package file:->package_file' && ret=0
- ;;
- rebuild)
- _arguments -s \
- "${commonopts[@]}" "${pathopts[@]}" \
- '*:RPM source package file:->package_file' && ret=0
- ;;
- target)
- _wanted target expl 'Target platforms' \
- compadd $(_call target rpm --showrc 2> /dev/null |grep 'compatible archs'|sed 's/.*: //') && ret=0
- ;;
- package_or_file)
- state=package_file
- ;&
- package)
- if ( [[ ${+_rpms} -eq 0 ]] || _cache_invalid RPMs ) &&
- ! _retrieve_cache RPMs;
- then
- _rpms=( $(_call packages rpm -qa 2>/dev/null) )
- _store_cache RPMs _rpms
- fi
- _wanted packages expl 'RPM package' \
- compadd -M 'r:|-=* r:|=*' - "$_rpms[@]" && ret=0
- ;;
- spec_file)
- _wanted specfiles expl 'spec file' \
- _files -g \*.spec && ret=0
- ;;
- package_file)
- _wanted files expl 'RPM package file' \
- _files -g '*.(#i)rpm' && ret=0
- if [[ -prefix 1 (f|ht)tp:// ]]; then
- _wanted urls expl 'URL of RPM package file' \
- _urls -f -g '*.(#i)rpm' "${expl[@]}" && ret=0
- else
- _wanted urls expl 'URL of RPM package file' \
- compadd -S '' "${expl[@]}" ftp:// http:// && ret=0
- fi
- ;;
- package_src)
- _files -g \*.src\(\#i\).rpm
- ;&
- tags)
- if compset -P '*%*\{'; then
- _wanted tags expl 'RPM tag' \
- compadd -M 'm:{a-z}={A-Z}' -S '\}' - \
- "${(@)${(@f)$(_call tags rpm --querytags 2> /dev/null)}#RPMTAG_}" && ret=0
- else
- _message 'RPM format'
- fi
- ;;
- capability)
- _message 'RPM capability'
- ;;
- relocate)
- if compset -P '*='; then
- _description directories expl 'new path'
- else
- _description directories expl 'old path'
- fi
-
- _files "$expl[@]" -/ && ret=0
- ;;
- esac
-
- [[ ret -eq 0 || $nm -ne $compstate[nmatches] ]] && return 0
- done
-
- return ret
-}
-
-# set a sensible default caching policy
-local update_policy
-zstyle -s ":completion:*:*:rpm:*" cache-policy update_policy
-if [[ -z "$update_policy" ]]; then
- zstyle ":completion:*:*:rpm:*" cache-policy _rpms_caching_policy
-fi
-
-_rpms_caching_policy () {
- # rebuild if cache is more than a week old
- oldp=( "$1"(mw+1) )
- (( $#oldp )) && return 0
-
- [[ /var/lib/rpm/packages.rpm -nt "$1" ]]
-}
-
-_rpm "$@"