diff options
Diffstat (limited to 'Completion/Unix/Command/_gzip')
-rw-r--r-- | Completion/Unix/Command/_gzip | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_gzip b/Completion/Unix/Command/_gzip new file mode 100644 index 000000000..dc0399071 --- /dev/null +++ b/Completion/Unix/Command/_gzip @@ -0,0 +1,80 @@ +#compdef gzip gunzip gzcat=gunzip + +local decompress expl curcontext="$curcontext" state line +typeset -A opt_args + +case "$service" in +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:->files' && return 0 + ;; +esac + +case "$state" in +files) + (( $+opt_args[-d] || $+opt_args[--decompress] || $+opt_args[--uncompress] )) && + decompress=yes + if (( $+opt_args[-r] || $+opt_args[--recursive] )); then + if [[ -z "$decompress" ]]; then + _description directories expl 'directory to compress' + _files "$expl[@]" -/ + else + _description directories expl 'compressed directory' + _files "$expl[@]" -/ + fi + else + if [[ -z "$decompress" ]]; then + _description files expl 'file to compress' + _files "$expl[@]" -g '*~*.(([tT]|)[gG]|)[zZ]' + else + _description files expl 'compressed file' + _files "$expl[@]" -g '*.(([tT]|)[gG]|)[zZ]' + fi + fi + ;; +esac |