mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-02 22:11:54 +02:00
59 lines
2 KiB
Text
59 lines
2 KiB
Text
#compdef apt-file
|
|
|
|
local curcontext="$curcontext" state line expl cmds ret=1
|
|
typeset -A opt_args
|
|
|
|
_arguments -C -S \
|
|
'(--cache -c)'{--cache,-c}'[cache directory]:directory:_directories' \
|
|
'(-v --verbose)'{-v,--verbose}'[verbose]' \
|
|
'(--cdrom-mount -d)'{--cdrom-mount,-d}'[cdrom mount point]:directory:_directories' \
|
|
'(--from-file -f --from-deb -D)'{--from-file,-f}'[read patterns from given file]' \
|
|
'(--from-deb -D --from-file -f)'{--from-dev,-D}'[use contents of given .deb archives as patterns]' \
|
|
'(--ignore-case -i)'{--ignore-case,-i}'[ignore case]' \
|
|
'(--regexp -x)'{--regexp,-x}'[regular expression]' \
|
|
'(-V --version)'{-V,--version}'[version]' \
|
|
'(-a --architecture)'{-a,--architecture}'[architecture]:architecture:_deb_architectures' \
|
|
'(-s --sources-list)'{-s,--sources-list}'[source.list file]:file:_files' \
|
|
'(-l --package-only)'{-l,--package-only}'[only display package name]' \
|
|
'(-N --non-interactive)'{-N,--non-interactive}'[skip schemes requiring user input]' \
|
|
'(-F --fixed-string)'{-F,--fixed-string}'[do not expand search pattern]' \
|
|
'(-y --dummy)'{-y,--dummy}'[run in dummy mode]' \
|
|
'(-)'{-h,--help}'[display help screen]' \
|
|
'1: :->cmds' \
|
|
'*: :->args' && ret=0
|
|
|
|
case $state in
|
|
cmds)
|
|
cmds=(
|
|
'update:resynchronize package contents'
|
|
{find,search}:'search in which package file is included'
|
|
{list,show}:'list contents of a package'
|
|
'purge:remove all Contents-<ARCH>.gz files in cache directory'
|
|
)
|
|
_describe -t commands 'apt-list command' cmds
|
|
;;
|
|
args)
|
|
case $line[1] in
|
|
search|find)
|
|
if (( $#opt_args[(I)(-D|--from-deb)] )); then
|
|
_wanted files expl 'debian package' _files -g '*.deb(-.)'
|
|
elif (( $#opt_args[(I)(-f|--from-file)] )); then
|
|
_files
|
|
else
|
|
_message -e patterns "pattern"
|
|
fi
|
|
;;
|
|
list|show)
|
|
_deb_packages avail
|
|
;;
|
|
update|purge)
|
|
# do nothing
|
|
;;
|
|
*)
|
|
_message "command $line[1] not available"
|
|
;;
|
|
esac
|
|
;;
|
|
esac && ret=0
|
|
|
|
return ret
|