1
0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-11-19 21:44:11 +01:00
zsh/Completion/Unix/Command/_gzip

92 lines
3.4 KiB
Plaintext

#compdef gzip gunzip gzcat=gunzip -redirect-,<,gunzip=gunzip -redirect-,>,gzip=gunzip -redirect-,<,gzip=gzip -value-,GZIP,-default-
local decompress files expl curcontext="$curcontext" state line ret=1
typeset -A opt_args
files=( '*:files:->files' )
case "$service" in
*GZIP*)
compset -q
words=( fake "$words[@]" )
(( CURRENT++ ))
files=()
;&
gunzip|zcat)
decompress=yes
;&
gzip)
_arguments -C -s -S \
'(--to-stdout --stdout)-c[write on standard output]' \
'(-c --stdout)--to-stdout[write on standard output]' \
'(-c --to-stdout)--stdout[write on standard output]' \
'(--decompress --uncompress)-d[decompress]' \
'(-d --uncompress)--decompress[decompress]' \
'(-d --decompress)--uncompress[decompress]' \
'(--force)-f[force overwrite]' \
'(-f)--force[force overwrite]' \
'(--help)-h[display help message]' \
'(-h)--help[display help message]' \
'(--list)-l[list compressed file contents]' \
'(-l)--list[list compressed file contents]' \
'(--license)-L[display software license]' \
'(-L)--license[display software license]' \
'(--no-name)-n[do not save or restore the original name and time stamp]' \
'(-n)--no-name[do not save or restore the original name and time stamp]' \
'(--name)-N[save or restore the original name and time stamp]' \
'(-N)--name[save or restore the original name and time stamp]' \
'(--quiet --silent)-q[suppress all warnings]' \
'(-q --silent)--quiet[suppress all warnings]' \
'(-q --quiet)--silent[suppress all warnings]' \
'(--recursive)-r[operate recursively on directories]' \
'(-r)--recursive[operate recursively on directories]' \
'(--suffix)-S+[specify suffix for compressed files]:suffix:' \
'(-S)--suffix=[specify suffix for compressed files]:suffix:' \
'(--test)-t[test compressed file integrity]' \
'(-t)--test[test compressed file integrity]' \
'(--verbose)-v[verbose mode]' \
'(-v)--verbose[verbose mode]' \
'(--version)-V[display version number]' \
'(-V)--version[display version number]' \
'( -1 -2 -3 -4 -5 -6 -7 -8 -9 --best)--fast' \
'(--fast -2 -3 -4 -5 -6 -7 -8 -9 --best)-1' \
'(--fast -1 -3 -4 -5 -6 -7 -8 -9 --best)-2' \
'(--fast -1 -2 -4 -5 -6 -7 -8 -9 --best)-3' \
'(--fast -1 -2 -3 -5 -6 -7 -8 -9 --best)-4' \
'(--fast -1 -2 -3 -4 -6 -7 -8 -9 --best)-5' \
'(--fast -1 -2 -3 -4 -5 -7 -8 -9 --best)-6' \
'(--fast -1 -2 -3 -4 -5 -6 -8 -9 --best)-7' \
'(--fast -1 -2 -3 -4 -5 -6 -7 -9 --best)-8' \
'(--fast -1 -2 -3 -4 -5 -6 -7 -8 --best)-9' \
'(--fast -1 -2 -3 -4 -5 -6 -7 -8 -9 )--best' \
"$files[@]" && ret=0
;;
esac
case "$state" in
files)
(( $+opt_args[-d] || $+opt_args[--decompress] || $+opt_args[--uncompress] ||
$+opt_args[-l] || $+opt_args[--list] ||
$+opt_args[-t] || $+opt_args[--test] )) &&
decompress=yes
if (( $+opt_args[-r] || $+opt_args[--recursive] )); then
if [[ -z "$decompress" ]]; then
_description directories expl 'directory to compress'
_files "$expl[@]" -/ && return
else
_description directories expl 'compressed directory'
_files "$expl[@]" -/ && return
fi
else
if [[ -z "$decompress" ]]; then
_description files expl 'file to compress'
_files "$expl[@]" -g '^*.(([tT]|)[gG]|)[zZ](-.)' && return
else
_description files expl 'compressed file'
_files "$expl[@]" -g '*.(([tT]|)[gG]|)[zZ](-.)' && return
fi
fi
;;
esac
return ret