blob: a6baa9757cc20d87015a342fe5a94d7cc206b5ca (
plain) (
blame)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
#compdef zip unzip zipinfo
local suffixes suf zipfile uzi testfile
local expl curcontext="$curcontext" state line ret=1
typeset -A opt_args
case $service in
zip)
_arguments -C -s \
'-f[freshen: only changed files]' \
'-d[delete entries in zipfile]' \
'-r[recurse into directories]' \
'-R[PKZIP recursion]' \
'-q[quiet operation]' \
'-c[add one-line comments]' \
'-b[use "path" for temp file]:path for temporary archive:_files -/' \
'-@[read names from stdin]' \
'-F[fix zipfile]' \
'-FF[try harder to fix zipfile]' \
'-A[adjust self-extracting exe]' \
'-T[test zipfile integrity]' \
'-y[store symbolic links as the link instead of the referenced file]' \
'-e[encrypt]' \
'-h[show help]' \
'-u[update: only changed or new files]' \
'-m[move into zipfile (delete files)]' \
'-g[allow growing existing zipfile]' \
'-j[junk: do not record directory names]' \
'-l[convert LF to CR LF]' \
'-ll[convert CR LF to LF]' \
'-L[display license]' \
'-v[verbose operation/print version info]' \
'-z[add zipfile comment]' \
'-t[only do files after or at "mmddyyyy"]:mmddyyyy' \
'-tt[only do files before "mmddyyyy"]:mmddyyyy' \
'-o[make zipfile as old as latest entry]' \
'-D[do not add directory entries]' \
'-J[junk zip file prefix (unzipsfx)]' \
'-X[eXclude eXtra file attributes]' \
'-n[specify suffixes of files not to be compressed]:suffixes:->suffixes' \
'( -1 -2 -3 -4 -5 -6 -7 -8 -9)-0[store only]' \
'(-0 -2 -3 -4 -5 -6 -7 -8 -9)-1[compress faster]' \
'(-0 -1 -3 -4 -5 -6 -7 -8 -9)-2' \
'(-0 -1 -2 -4 -5 -6 -7 -8 -9)-3' \
'(-0 -1 -2 -3 -5 -6 -7 -8 -9)-4' \
'(-0 -1 -2 -3 -4 -6 -7 -8 -9)-5' \
'(-0 -1 -2 -3 -4 -5 -7 -8 -9)-6' \
'(-0 -1 -2 -3 -4 -5 -6 -8 -9)-7' \
'(-0 -1 -2 -3 -4 -5 -6 -7 -9)-8' \
'(-0 -1 -2 -3 -4 -5 -6 -7 -8 )-9[compress better]' \
'-x[exclude the following names]' \
'-i[include only the following names]' \
"(-f -d -R -q -c -b -@ -F -FF -A -T -y -e -h -u -m -g -j -l -ll -L -v -z -t -tt -o -D -J -X -n -0 -1 -2 -3 -4 -5 -6 -7 -8 -9):zip file:_files -g '(#i)*.(zip|xpi|[ejw]ar)(-.)'" \
'*:file:->files' && ret=0
;;
unzip)
_arguments -C -s \
'(-f -u -l -t -z -d)-p[extract files to pipe]' \
'(-p -u -l -t -z)-f[freshen existing files; create none]' \
'(-p -f -l -t -z)-u[update files; create if necessary]' \
'(-p -f -u -t -z -d)-l[list files]' \
'(-p -f -u -l -z -d)-t[test compressed archive data]' \
'(-p -f -u -l -t -d)-z[display archive comment]' \
'(-p -l -t -z)-d+[specify directory to extract files to]:directory:_files -/' \
'(-p -l -t -z -o)-n[never overwrite existing files]' \
'(-p -l -t -z -n)-o[overwrite files without prompting]' \
"(-p -l -t -z)-j[junk paths (don't make directories)]" \
'-C[match filenames case-insensitively]' \
'(-p -l -t -z)-X[restore UID/GID info]' \
'-q[quiet]' '-qq[quieter]' \
'(-l -t -z)-a[auto-convert any text files]' \
'(-l -t -z)-aa[treat all files as text]' \
'-v[verbose/display version info]' \
'(-p -z)-L[lowercase (some) filenames]' \
'-M[page output]' \
'-x[exclude the following names]' \
'-Z[zipinfo mode]:zipinfomode:->zipinfo' \
"(-p -f -u -l -t -z -n -o -j -C -X -q -qq -a -aa -v -L -M)1:zip file:_files -g '(#i)*.(zip|xpi|[ejw]ar)(-.)'" \
'*:file:->files' && ret=0
;;
esac
[[ $state == zipinfo ]] && uzi="-Z[zipinfo mode]"
if [[ $service == zipinfo ]] || [[ -n $uzi ]]; then
_arguments -C -s \
$uzi \
'(-2 -s -m -l -v -h -t -T -z)-1[filenames only]' \
'(-1 -s -m -l -v -T)-2[just filenames but allow -h/-t/-z]' \
'(-1 -2 -m -l -v -h -t)-s[short format]' \
'(-1 -2 -s -l -v -h -t)-m[medium format]' \
'(-1 -2 -s -m -v -h -t)-l[long format]' \
'(-1 -2 -s -m -l -h -z)-v[verbose, multi-page format]' \
'(-1 -s -m -l -v)-h[print header line]' \
'(-1 -v)-z[print zipfile comment]' \
'-C[match filenames case-insensitively]' \
'(-1 -s -m -l)-t[print totals]' \
'(-1 -2)-T[use sortable decimal format for file times]' \
'-M[page output]' \
'-x[exclude the following names]' \
"(-1 -2 -s -m -l -v -h -z -C -t -T -M)1:zip file:_files -g '(#i)*.(zip|xpi|[ejw]ar)(-.)'" \
'*:file:->files' && ret=0
fi
case $state in
suffixes)
compset -P '*:'
compset -S ':*' || suf=":."
suffixes=( *.*(N:e) )
_wanted suffixes expl suffixes \
compadd -S "$suf" -r ": \t" .$^suffixes && return
;;
files)
if [[ $service = zip ]] && (( ! ${+opt_args[-d]} )); then
_wanted files expl zfile _files -g '^(#i)*.(zip|xpi|[ejw]ar)(-.)' && return
else
testfile=${~${(Q)line[1]}}
if [[ -f $testfile ]]; then
zipfile=$testfile
elif [[ -f $testfile.zip ]]; then
zipfile=$testfile.zip
elif [[ -f $testfile.ZIP ]]; then
zipfile=$testfile.ZIP
else
return 1
fi
if [[ $zipfile != $_zip_cache_name ]]; then
_zip_cache_name="$zipfile"
_zip_cache_list=( ${(f)"$(zipinfo -1 $_zip_cache_name)"} )
fi
_wanted files expl 'file from archive' \
_multi_parts / _zip_cache_list && return
fi
;;
esac
return ret
|