#compdef apt-move
local curcontext="$curcontext" state line cmds ret=1
typeset -A opt_args
_arguments -C \
'-a[process all packages]' \
'-c[specify an alternative configuration file]' \
'-d[override the DIST setting]' \
'-f[override the MAXDELETE setting]' \
'-q[be quiet; suppress normal output]' \
'-t[show what apt-move would do, but do not actually do anything]' \
'1: :->cmds' \
'*: :->args' && ret=0
case $state in
cmds)
cmds=(
'get:update your master files from local apt'
'getlocal:alias of get'
'fsck:fix broken repositories'
'move:move cache files into mirror tree'
'movefile:move files into the repository'
'delete:delete obsolete packages'
'packages:create new local Packages files'
'update:alias for: get move delete packages'
'local:alias for: move delete packages'
'localupdate:alias for: getlocal move delete packages'
'mirror:update your local mirror from remote rsync site'
'sync:same as mirror, but only gets packages that you currently have installed on your system'
'exclude:prints a list of all packages EXCLUDED from the mirror by the .exclude file'
'listbin:prints lists of packages which can serve as the input to mirrorbin(mirror,sync,repo)'
'listsrc:same as listbin, but lists source packages'
'mirrorbin:same as mirror, but gets the packages specified on stdin'
'mirrorsrc:same as mirrorbin, but gets source packages'
)
_describe -t commands 'apt-move command' cmds && ret=0
;;
args)
case $line[1] in
get|getlocal)
_directories && ret=0
;;
movefile)
_files -g "*.d(sc|eb)(-.)" && ret=0
;;
listbin)
_wanted lists expl list compadd mirror sync repo
;;
esac
;;
esac
return ret
Copyright 2K16 - 2K18 Indonesian Hacker Rulez