~apt-fast/apt-fast/apt-fast-ro

« back to all changes in this revision

Viewing changes to completions/zsh/_apt-fast

  • Committer: Dominique Lasserre
  • Date: 2020-04-06 22:37:35 UTC
  • Revision ID: git-v1:90dcdee963ad116fad1aaf0af2133405789bf7d7
Inherit completions from apt-get. Closes #173

 * This makes apt-fast dependent on the apt-get completion provided
   from the shell.
   Bash: bash-completion
   Zsh:  zsh-common
   Fish: fish-common

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#compdef apt-fast
2
 
 
3
 
# Debian apt-fast(8) zsh completion.
4
 
# Copy of zsh (4.3.17-1) _apt-get function from _apt completion.
5
 
 
6
 
# usage: _apt_arguments funcname option-spec... -- rest-regex
7
 
_apt_arguments () {
8
 
 
9
 
  local funcname
10
 
  funcname="$1"
11
 
  shift
12
 
 
13
 
  typeset -A canonicalize num_options
14
 
  local short_hasarg short_bool short_intlevel short_configfile short_arbitem
15
 
  local long_hasarg long_bool long_intlevel long_configfile long_arbitem
16
 
  local short_release long_release
17
 
  local comp_hasarg=''
18
 
  local opt opts type
19
 
 
20
 
  while [[ 0 -lt $# && $1 != -- ]]; do
21
 
    opts="${1%%:*}"
22
 
    type="${1#*:}"
23
 
 
24
 
    case $type in
25
 
      bool) num_options[$opts]=1;;
26
 
      intlevel) num_options[$opts]=-1;;
27
 
      configfile) num_options[$opts]=1;;
28
 
      arbitem) num_options[$opts]=-1;;
29
 
      release) num_options[$opts]=1;;
30
 
      *) num_options[$opts]=1
31
 
        comp_hasarg="${comp_hasarg}$opts) $type;;"$'\n'
32
 
        type=hasarg;;
33
 
    esac
34
 
 
35
 
    for opt in ${(s:,:)=opts}; do
36
 
      canonicalize[$opt]="$opts"
37
 
      case $opt in
38
 
        --*) eval "long_$type=(\$long_$type ${opt#--})";;
39
 
        -?) eval "short_$type=(\$short_$type ${opt#-})";;
40
 
      esac
41
 
    done
42
 
    shift
43
 
  done
44
 
 
45
 
  # skip --
46
 
  [[ 0 -lt $# ]] && shift
47
 
 
48
 
  comp_hasarg="{case \$current_option in
49
 
  ${comp_hasarg}esac}"
50
 
 
51
 
  local short_seq false true bool bool_prefix intlevel word word1 nul qnul match
52
 
  local comp_bool comp_intlevel comp_configfile comp_arbitem comp_long comp_opt
53
 
  local comp_release comp_long_prefix comp_short
54
 
  local regex_short regex_long regex_all regex_long_prefix
55
 
 
56
 
  regex_all=( \( "$@" \) )
57
 
 
58
 
  short_seq="(${(j:|:)short_bool}|${(j:|:)short_intlevel})#"
59
 
 
60
 
  false=(no false without off disable)
61
 
  true=(yes true with on enable)
62
 
  bool=($false $true)
63
 
 
64
 
  bool_prefix=(--${^bool}-)
65
 
 
66
 
  intlevel='[0-9]##'
67
 
 
68
 
  word=$'[^\0]#\0'
69
 
  word1=$'[^\0]##\0'
70
 
  nul=$'\0'
71
 
  qnul="\$'\\0'"
72
 
 
73
 
  comp_bool="($bool)"
74
 
  comp_intlevel=
75
 
  comp_configfile='_files'
76
 
  comp_arbitem=
77
 
  comp_release='_apt_releases'
78
 
 
79
 
  comp_short=\
80
 
'{if [[ $PREFIX = -'"$short_seq"' ]]; then
81
 
  _apt_consume_short ${PREFIX[2,-1]}
82
 
  tmp1=(${(M)${(s:,:)${(kj:,:)num_options[(R)*~0]}}:#-?})
83
 
  tmp2=(${PREFIX}${^tmp1#-})
84
 
  _describe -o option tmp1 tmp2
85
 
elif [[ -z "$PREFIX" ]]; then
86
 
  tmp1=(${(M)${(s:,:)${(kj:,:)num_options[(R)*~0]}}:#-?})
87
 
  _describe -o option tmp1
88
 
fi}'
89
 
 
90
 
  comp_long=\
91
 
'tmp1="${(j:|:)${(@)${(@M)${(@s:,:)${(@kj:,:)num_options[(R)*~0]}}:#--*}#--}}"
92
 
tmp2=(--${(M)^long_bool:#$~tmp1} --${(M)^long_intlevel:#$~tmp1})
93
 
tmp3=(--${(M)^long_hasarg:#$~tmp1} --${(M)^long_configfile:#$~tmp1} --${(M)^long_arbitem:#$~tmp1} --${(M)^long_release:#$~tmp1})
94
 
_describe -o option tmp2 -- tmp3 -S= -- bool_prefix -S ""'
95
 
 
96
 
  comp_long_prefix=\
97
 
'{tmp1="${(j:|:)${(@)${(@M)${(@s:,:)${(@kj:,:)num_options[(R)*~0]}}:#--*}#--}}"
98
 
tmp2=($_ra_left${(M)^long_bool:#$~tmp1} $_ra_left${(M)^long_intlevel:#$~tmp1})
99
 
tmp3=($_ra_left${(M)^long_hasarg:#$~tmp1} $_ra_left${(M)^long_configfile:#$~tmp1} $_ra_left${(M)^long_arbitem:#$~tmp1} $_ra_left${(M)^long_release:#$~tmp1})
100
 
tmp1="${(j:|:)${(@)${(@M)${(@s:,:)${(@kj:,:)num_options[(R)*~0]}}:#-?}#-}}"
101
 
tmp2=("$tmp2[@]" $_ra_left${(M)^short_bool:#$~tmp1} $_ra_left${(M)^short_intlevel:#$~tmp1})
102
 
tmp3=("$tmp3[@]" $_ra_left${(M)^short_hasarg:#$~tmp1} $_ra_left${(M)^short_configfile:#$~tmp1} $_ra_left${(M)^short_arbitem:#$~tmp1} $_ra_left${(M)^short_release:#$~tmp1})
103
 
_describe -o option tmp2 -- tmp3 -S=}'
104
 
 
105
 
  comp_opt='{{ ! zstyle -T ":completion:${curcontext}:options" prefix-needed || [[ "$PREFIX" = -* ]] }'" && { $comp_short; $comp_long }}"
106
 
  comp_short="{$comp_short}"
107
 
  comp_long="{$comp_long}"
108
 
 
109
 
  regex_short=()
110
 
  regex_long=()
111
 
  regex_long_prefix=()
112
 
 
113
 
  if (( $#short_hasarg )); then
114
 
    regex_short=("$regex_short[@]"
115
 
      /"$short_seq(${(j:|:)short_hasarg})(=|)"/
116
 
      -'_apt_consume_short ${match[1]%=}; current_option=${canonicalize[-${${match[1]%=}[-1]}]}'
117
 
      \( /"$word1"/ ":options:option:$comp_hasarg" \| /"$nul"/ /"$word"/ ":options:option:$comp_hasarg" \) \|
118
 
    )
119
 
    regex_long_prefix=("$regex_long_prefix[@]"
120
 
      /"(${(j:|:)short_hasarg})$nul"/
121
 
      -'_apt_consume_short ${match[1][-2]}; current_option=${canonicalize[-${${match[1]%'$qnul'}[-1]}]}'
122
 
      /"$word"/ ":options:option:$comp_hasarg" \|
123
 
      /"(${(j:|:)short_hasarg})="/
124
 
      -'_apt_consume_short ${match[1][-2]}; current_option=${canonicalize[-${${match[1]%=}[-1]}]}'
125
 
      \( /"$word1"/ ":options:option:$comp_hasarg" \| /"$nul"/ /"$word"/ ":options:option:$comp_hasarg" \) \|
126
 
    )
127
 
  fi
128
 
 
129
 
  if (( $#short_bool )); then
130
 
    regex_short=("$regex_short[@]"
131
 
      /"$short_seq(${(j:|:)short_bool})($nul(${(j:|:)bool})|(${(j:|:)bool})|)$nul"/
132
 
      -'_apt_consume_short ${match[1]%%('$qnul'('${(j:|:)bool}')|('${(j:|:)bool}')|)'$qnul'}' \|
133
 
      /"$short_seq(${(j:|:)short_bool})="/
134
 
      -'_apt_consume_short ${match[1]%=}'
135
 
      \( /"$word1"/ ":names:boolean value:$comp_bool" \| /"$nul"/ /"$word"/ ":names:boolean value:$comp_bool" \) \|
136
 
    )
137
 
    regex_long_prefix=("$regex_long_prefix[@]"
138
 
      /"(${(j:|:)short_bool})="/
139
 
      -'_apt_consume_short ${match[1][-2]}'
140
 
      \( /"$word1"/ ":names:boolean value:$comp_bool" \| /"$nul"/ /"$word"/ ":names:boolean value:$comp_bool" \) \|
141
 
      /"(${(j:|:)short_bool})$nul"/
142
 
      -'_apt_consume_short ${match[1][-2]}'
143
 
      /"((${(j:|:)bool})$nul|)"/ ":names:boolean value:$comp_bool" \|
144
 
    )
145
 
  fi
146
 
 
147
 
  if (( $#short_intlevel )); then
148
 
    regex_short=("$regex_short[@]"
149
 
      /"$short_seq(${(j:|:)short_intlevel})($nul$intlevel|$intlevel|)$nul"/
150
 
      -'_apt_consume_short ${match[1]%%'"($qnul$intlevel|$intlevel|)$qnul"'}' \|
151
 
      /"$short_seq(${(j:|:)short_intlevel})="/
152
 
      -'_apt_consume_short ${match[1]%=}'
153
 
      \( /"$word1"/ ":options:option:$comp_intlevel" \| /"$nul"/ /"$word"/ ":options:option:$comp_intlevel" \) \|
154
 
    )
155
 
    regex_long_prefix=("$regex_long_prefix[@]"
156
 
      /"(${(j:|:)short_intlevel})="/
157
 
      -'_apt_consume_short ${match[1][-2]}'
158
 
      \( /"$word1"/ ":options:option:$comp_intlevel" \| /"$nul"/ /"$word"/ ":options:option:$comp_intlevel" \) \|
159
 
      /"(${(j:|:)short_intlevel})$nul"/
160
 
      -'_apt_consume_short ${match[1][-2]}'
161
 
      /"($intlevel$nul|)"/ ":options:option:$comp_intlevel" \|
162
 
    )
163
 
  fi
164
 
 
165
 
  if (( $#short_configfile )); then
166
 
    regex_short=("$regex_short[@]"
167
 
      /"$short_seq(${(j:|:)short_configfile})(=|)"/
168
 
      -'_apt_consume_short ${match[1]%=}'
169
 
      \( /"$word1"/ ":files:config file:$comp_configfile" \| /"$nul"/ /"$word"/ ":files:config file:$comp_configfile" \) \|
170
 
    )
171
 
    regex_long_prefix=("$regex_long_prefix[@]"
172
 
      /"(${(j:|:)short_configfile})$nul"/
173
 
      -'_apt_consume_short ${match[1][-2]}'
174
 
      /"$word"/ ":files:config file:$comp_configfile" \|
175
 
      /"(${(j:|:)short_configfile})="/
176
 
      -'_apt_consume_short ${match[1][-2]}'
177
 
      \( /"$word1"/ ":files:config file:$comp_configfile" \| /"$nul"/ /"$word"/ ":files:config file:$comp_configfile" \) \|
178
 
    )
179
 
  fi
180
 
 
181
 
  if (( $#short_arbitem )); then
182
 
    regex_short=("$regex_short[@]"
183
 
      /"$short_seq(${(j:|:)short_arbitem})(=|)"/
184
 
      -'_apt_consume_short ${match[1]%=}'
185
 
      \( /"$word1"/ ":options:option:$comp_arbitem" \| /"$nul"/ /"$word"/ ":options:option:$comp_arbitem" \) \|
186
 
    )
187
 
    regex_long_prefix=("$regex_long_prefix[@]"
188
 
      /"(${(j:|:)short_arbitem})$nul"/
189
 
      -'_apt_consume_short ${match[1][-2]}'
190
 
      /"$word"/ ":options:option:$comp_arbitem" \|
191
 
      /"(${(j:|:)short_arbitem})="/
192
 
      -'_apt_consume_short ${match[1][-2]}'
193
 
      \( /"$word1"/ ":options:option:$comp_arbitem" \| /"$nul"/ /"$word"/ ":options:option:$comp_arbitem" \) \|
194
 
    )
195
 
  fi
196
 
 
197
 
  if (( $#short_release )); then
198
 
    regex_short=("$regex_short[@]"
199
 
      /"$short_seq(${(j:|:)short_release})(=|)"/
200
 
      -'_apt_consume_short ${match[1]%=}'
201
 
      \( /"$word1"/ ":releases:release name:$comp_release" \| /"$nul"/ /"$word"/ ":release name:release:$comp_release" \) \|
202
 
    )
203
 
    regex_long_prefix=("$regex_long_prefix[@]"
204
 
      /"(${(j:|:)short_release})$nul"/
205
 
      -'_apt_consume_short ${match[1][-2]}'
206
 
      /"$word"/ ":releases:release name:$comp_release" \|
207
 
      /"(${(j:|:)short_release})="/
208
 
      -'_apt_consume_short ${match[1][-2]}'
209
 
      \( /"$word1"/ ":releases:release name:$comp_release" \| /"$nul"/ /"$word"/ ":releases:release name:$comp_release" \) \|
210
 
    )
211
 
  fi
212
 
 
213
 
  if (( $#long_hasarg )); then
214
 
    regex_long=("$regex_long[@]"
215
 
      /"(${(j:|:)long_hasarg})$nul"/
216
 
      -'_apt_consume_long ${match[1]%'$qnul'}; current_option=${canonicalize[--${match[1]%'$qnul'}]}'
217
 
      /"$word"/ ":options:option:$comp_hasarg" \|
218
 
      /"(${(j:|:)long_hasarg})="/
219
 
      -'_apt_consume_long ${match[1]%=}; current_option=${canonicalize[--${match[1]%=}]}'
220
 
      \( /"$word1"/ ":options:option:$comp_hasarg" \| /"$nul"/ /"$word"/ ":options:option:$comp_hasarg" \) \|
221
 
    )
222
 
    regex_long_prefix=("$regex_long_prefix[@]"
223
 
      /"(${(j:|:)long_hasarg})$nul"/
224
 
      -'_apt_consume_long ${match[1]%'$qnul'}; current_option=${canonicalize[--${match[1]%'$qnul'}]}'
225
 
      /"$word"/ ":options:option:$comp_hasarg" \|
226
 
      /"(${(j:|:)long_hasarg})="/
227
 
      -'_apt_consume_long ${match[1]%=}; current_option=${canonicalize[--${match[1]%=}]}'
228
 
      \( /"$word1"/ ":options:option:$comp_hasarg" \| /"$nul"/ /"$word"/ ":options:option:$comp_hasarg" \) \|
229
 
    )
230
 
  fi
231
 
 
232
 
  if (( $#long_bool )); then
233
 
    regex_long=("$regex_long[@]"
234
 
      /"(${(j:|:)long_bool})="/
235
 
      -'_apt_consume_long ${match[1]%=}'
236
 
      \( /"$word1"/ ":names:boolean value:$comp_bool" \| /"$nul"/ /"$word"/ ":names:boolean value:$comp_bool" \) \|
237
 
      /"(${(j:|:)long_bool})$nul"/
238
 
      -'_apt_consume_long ${match[1]%'$qnul'}'
239
 
      /"((${(j:|:)bool})$nul|)"/ ":names:boolean value:$comp_bool" \|
240
 
    )
241
 
    regex_long_prefix=("$regex_long_prefix[@]"
242
 
      /"(${(j:|:)long_bool})="/
243
 
      -'_apt_consume_long ${match[1]%=}'
244
 
      \( /"$word1"/ ":names:boolean value:$comp_bool" \| /"$nul"/ /"$word"/ ":names:boolean value:$comp_bool" \) \|
245
 
      /"(${(j:|:)long_bool})$nul"/
246
 
      -'_apt_consume_long ${match[1]%'$qnul'}'
247
 
      /"((${(j:|:)bool})$nul|)"/ ":names:boolean value:$comp_bool" \|
248
 
    )
249
 
  fi
250
 
 
251
 
  if (( $#long_intlevel )); then
252
 
    regex_long=("$regex_long[@]"
253
 
      /"(${(j:|:)long_intlevel})="/
254
 
      -'_apt_consume_long ${match[1]%=}'
255
 
      \( /"$word1"/ ":options:option:$comp_intlevel" \| /"$nul"/ /"$word"/ ":options:option:$comp_intlevel" \) \|
256
 
      /"(${(j:|:)long_intlevel})$nul"/
257
 
      -'_apt_consume_long ${match[1]%'$qnul'}'
258
 
      /"($intlevel$nul|)"/ ":options:option:$comp_intlevel" \|
259
 
    )
260
 
    regex_long_prefix=("$regex_long_prefix[@]"
261
 
      /"(${(j:|:)long_intlevel})="/
262
 
      -'_apt_consume_long ${match[1]%=}'
263
 
      \( /"$word1"/ ":options:option:$comp_intlevel" \| /"$nul"/ /"$word"/ ":options:option:$comp_intlevel" \) \|
264
 
      /"(${(j:|:)long_intlevel})$nul"/
265
 
      -'_apt_consume_long ${match[1]%'$qnul'}'
266
 
      /"($intlevel$nul|)"/ ":options:option:$comp_intlevel" \|
267
 
    )
268
 
  fi
269
 
 
270
 
  if (( $#long_configfile )); then
271
 
    regex_long=("$regex_long[@]"
272
 
      /"(${(j:|:)long_configfile})$nul"/
273
 
      -'_apt_consume_long ${match[1]%'$qnul'}'
274
 
      /"$word"/ ":files:config file:$comp_configfile" \|
275
 
      /"(${(j:|:)long_configfile})="/
276
 
      -'_apt_consume_long ${match[1]%=}'
277
 
      \( /"$word1"/ ":files:config file:$comp_configfile" \| /"$nul"/ /"$word"/ ":files:config file:$comp_configfile" \) \|
278
 
    )
279
 
    regex_long_prefix=("$regex_long_prefix[@]"
280
 
      /"(${(j:|:)long_configfile})$nul"/
281
 
      -'_apt_consume_long ${match[1]%'$qnul'}'
282
 
      /"$word"/ ":files:config file:$comp_configfile" \|
283
 
      /"(${(j:|:)long_configfile})="/
284
 
      -'_apt_consume_long ${match[1]%=}'
285
 
      \( /"$word1"/ ":files:config file:$comp_configfile" \| /"$nul"/ /"$word"/ ":files:config file:$comp_configfile" \) \|
286
 
    )
287
 
  fi
288
 
 
289
 
  if (( $#long_arbitem )); then
290
 
    regex_long=("$regex_long[@]"
291
 
      /"(${(j:|:)long_arbitem})$nul"/
292
 
      -'_apt_consume_long ${match[1]%'$qnul'}'
293
 
      /"$word"/ ":options:option:$comp_arbitem" \|
294
 
      /"(${(j:|:)long_arbitem})="/
295
 
      -'_apt_consume_long ${match[1]%=}'
296
 
      \( /"$word1"/ ":options:option:$comp_arbitem" \| /"$nul"/ /"$word"/ ":options:option:$comp_arbitem" \) \|
297
 
    )
298
 
    regex_long_prefix=("$regex_long_prefix[@]"
299
 
      /"(${(j:|:)long_arbitem})$nul"/
300
 
      -'_apt_consume_long ${match[1]%'$qnul'}'
301
 
      /"$word"/ ":options:option:$comp_arbitem" \|
302
 
      /"(${(j:|:)long_arbitem})="/
303
 
      -'_apt_consume_long ${match[1]%=}'
304
 
      \( /"$word1"/ ":options:option:$comp_arbitem" \| /"$nul"/ /"$word"/ ":options:option:$comp_arbitem" \) \|
305
 
    )
306
 
  fi
307
 
 
308
 
  if (( $#long_release )); then
309
 
    regex_long=("$regex_long[@]"
310
 
      /"(${(j:|:)long_release})$nul"/
311
 
      -'_apt_consume_long ${match[1]%'$qnul'}'
312
 
      /"$word"/ ":releases:release name:$comp_release" \|
313
 
      /"(${(j:|:)long_release})="/
314
 
      -'_apt_consume_long ${match[1]%=}'
315
 
      \( /"$word1"/ ":releases:release name:$comp_release" \| /"$nul"/ /"$word"/ ":releases:release name:$comp_release" \) \|
316
 
    )
317
 
    regex_long_prefix=("$regex_long_prefix[@]"
318
 
      /"(${(j:|:)long_release})$nul"/
319
 
      -'_apt_consume_long ${match[1]%'$qnul'}'
320
 
      /"$word"/ ":releases:release name:$comp_release" \|
321
 
      /"(${(j:|:)long_release})="/
322
 
      -'_apt_consume_long ${match[1]%=}'
323
 
      \( /"$word1"/ ":releases:release name:$comp_release" \| /"$nul"/ /"$word"/ ":releases:release name:$comp_release" \) \|
324
 
    )
325
 
  fi
326
 
 
327
 
  regex_all=(
328
 
    /"$word"/
329
 
    \( /--/+ \( "$regex_long[@]"
330
 
    /"(${(j:|:)bool})-"/+
331
 
    \( "$regex_long_prefix[@]"
332
 
    /"[]"/ ":options:option:$comp_long_prefix" \) \) \|
333
 
    /-/+ \( "$regex_short[@]" /"[]"/ \) \|
334
 
    /"[]"/ ":options:option:$comp_opt" \) \#
335
 
    "$regex_all[@]"
336
 
  )
337
 
 
338
 
  _regex_arguments "${funcname}_sm" "$regex_all[@]"
339
 
 
340
 
  eval "$funcname () {
341
 
    typeset -A canonicalize num_options
342
 
    canonicalize=(${(kv)canonicalize})
343
 
    num_options=(${(kv)num_options})
344
 
 
345
 
    local short_hasarg short_bool short_intlevel short_configfile short_arbitem
346
 
    local long_hasarg long_bool long_intlevel long_configfile long_arbitem
347
 
    local short_release long_release
348
 
    local bool_prefix
349
 
    short_hasarg=($short_hasarg)
350
 
    short_bool=($short_bool)
351
 
    short_intlevel=($short_intlevel)
352
 
    short_configfile=($short_configfile)
353
 
    short_arbitem=($short_arbitem)
354
 
    short_release=($short_release)
355
 
    long_hasarg=($long_hasarg)
356
 
    long_bool=($long_bool)
357
 
    long_intlevel=($long_intlevel)
358
 
    long_configfile=($long_configfile)
359
 
    long_arbitem=($long_arbitem)
360
 
    long_release=($long_release)
361
 
    bool_prefix=($bool_prefix)
362
 
 
363
 
    local current_option tmp1 tmp2 tmp3
364
 
 
365
 
    ${funcname}_sm
366
 
  }"
367
 
}
368
 
 
369
 
_apt_consume_short () {
370
 
  local short opt
371
 
  for short in ${(s::)1}; do
372
 
    opt="$canonicalize[-$short]"
373
 
    (( 0 < num_options[$opt] && num_options[$opt]-- ))
374
 
  done
375
 
  return 0
376
 
}
377
 
 
378
 
_apt_consume_long () {
379
 
  local long opt
380
 
  opt="$canonicalize[--$1]"
381
 
  (( 0 < num_options[$opt] && num_options[$opt]-- ))
382
 
  return 0
383
 
}
384
 
 
385
 
_apt-fast () {
386
 
  _apt_arguments _apt-fast_sm \
387
 
    -h,--help:bool \
388
 
    -v,--version:bool \
389
 
    -q,--quiet,--silent:intlevel \
390
 
    -d,--download-only:bool \
391
 
    -b,--compile,--build:bool \
392
 
    -s,--simulate,--just-print,--dry-run,--recon,--no-act:bool \
393
 
    -y,--yes,--assume-yes:bool \
394
 
    -f,--fix-broken:bool \
395
 
    -u,--show-upgraded:bool \
396
 
    -V,--verbose-versions:bool \
397
 
    -m,--ignore-missing,--fix-missing:bool \
398
 
    --no-download:bool \
399
 
    --no-install-recommends:bool \
400
 
    --ignore-hold:bool \
401
 
    --no-upgrade:bool \
402
 
    --force-yes:bool \
403
 
    --print-uris:bool \
404
 
    --purge:bool \
405
 
    --list-cleanup:bool \
406
 
    --reinstall:bool \
407
 
    -c,--config-file:configfile \
408
 
    -o,--option:arbitem \
409
 
    -t,--target-release,--default-release:release \
410
 
    --trivial-only:bool \
411
 
    --no-remove:bool \
412
 
    --only-source:bool \
413
 
    --diff-only:bool \
414
 
    --tar-only:bool \
415
 
    --arch-only:bool \
416
 
    --allow-unauthenticated:bool \
417
 
    -- \
418
 
    /$'update\0'/ \| \
419
 
    /$'upgrade\0'/ \| \
420
 
    \( \
421
 
    /$'install\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \
422
 
    /$'[^\0/]#/'/ /$'[^\0/]#\0'/ ':release name::_apt_releases' \) \| \
423
 
    /$'remove\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
424
 
    /$'purge\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
425
 
    /$'dist-upgrade\0'/ \| \
426
 
    /$'dselect-upgrade\0'/ \| \
427
 
    /$'clean\0'/ \| \
428
 
    /$'autoclean\0'/ \| \
429
 
    /$'changelog\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \
430
 
    /$'check\0'/ \| \
431
 
    /$'source\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \
432
 
    /$'build-dep\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \
433
 
    /$'autoremove\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
434
 
    /$'help\0/' \| \
435
 
    /$'markauto\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
436
 
    /$'unmarkauto\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
437
 
    /"[]"/  ':argument-1::compadd "$expl_action[@]" update upgrade install remove purge dist-upgrade dselect-upgrade clean autoclean changelog check source build-dep autoremove help markauto unmarkauto'
438
 
 
439
 
  _apt-fast () {
440
 
    local expl_action expl_packages
441
 
    _description actions expl_action 'action'
442
 
    _description packages expl_packages 'package'
443
 
    _apt-fast_sm
444
 
  }
445
 
}
446
 
 
447
 
_apt-fast "$@"
 
1
compdef apt-fast=apt-get