File: _compress

package info (click to toggle)
zsh 5.9-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 23,856 kB
  • sloc: ansic: 108,138; sh: 6,976; makefile: 722; perl: 687; awk: 291; sed: 16
file content (48 lines) | stat: -rw-r--r-- 1,414 bytes parent folder | download | duplicates (16)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#compdef compress uncompress -redirect-,<,uncompress=uncompress -redirect-,>,compress=uncompress -redirect-,<,compress=compress

local expl state line bits common_args1 common_args2 decompress ret=1
local curcontext="$curcontext"
typeset -A opt_args
bits=( {9..16} )

common_args1=( \
  '-n[omit compressed file header from compressed file]' \
  '-V[display current version and compile options]' \
  '*:files:->files')
common_args2=( \
  '-c[write on standard output]' \
  '(-F)-f[force overwrite]' \
  '(-f)-F[force overwrite]' \
  '(-v)-q[suppress display of compression statistics]' \
  '(-q)-v[display compression statistics]' \
  "${common_args1[@]}" )

case "$service" in
  compress)
    _arguments -C -s \
      "-b[specify maximum number of bits used to replace common substring]:bits:(${bits[*]})" \
      '-C[produce output compatible with BSD 2.0]' \
      '(-b -C)-d[decompress]' \
      "${common_args2[@]}" && ret=0
  ;;
  uncompress)
    _arguments -C -s "${common_args2[@]}" && ret=0
    decompress=yes
  ;;
  zcat)
    _arguments -C -s "${common_args1[@]}" && ret=0
    decompress=yes
  ;;
esac

if [[ "$state" = files ]]; then
  if [[ -z "$decompress" ]] || (( $+opt_args[-d] )); then
    _description files expl 'file to compress'
    _files "$expl[@]" -g '^*.Z(-.)' && return
  else
    _description files expl 'compressed file'
    _files "$expl[@]" -g '*.Z(-.)' && return
  fi
fi

return ret