#compdef reprepro
local context state line distfile
typeset -A opt_args
local -a codenames
_arguments \
'(-h --help)'{-h,--help}'[display help]' \
'*'{-v,-V,--verbose}'[be more verbose]' \
'--silent[be less verbose]' \
'(-b --basedir)'{-b,--basedir}':basedir:_files -/' \
'--confdir:config dir:_files -/' \
'--distdir:dist dir:_files -/' \
'--logdir:log dir:_files -/' \
'--overridedir:override dir:_files -/' \
'--dbdir:db dir:_files -/' \
'--listdir:list dir:_files -/' \
'--methoddir:method dir:_files -/' \
'(-C --component)'{-C,--component}':component:(component1 component2)' \
'(-A --architecture)'{-A,--architecture}':architecture:(amd64 sparc)' \
'(-T --type)'{-T,--type}':file type:(dsc deb udeb)' \
'(-S --section)'{-S,--section}':section:(section1 section2)' \
'(-P --priority)'{-P,--priority}':priority:(high low)' \
'--export=:whether and how:(never changed normal force)' \
'--ignore=:error type:(what otherwhat)' \
'--nolistsdownload[do not download Release or index files]' \
'--keepunreferencedfiles[do not delete files that are no longer used]' \
'--keepunneededlists' \
'--keepdirectories' \
'--ask-passphrase' \
'--noskipold' \
'--waitforlock:count:' \
'--spacecheck:behavior:(full none)' \
'--dbsafetymargin:bytes count:' \
'--safetymargin:bytes count:' \
'--noguessgpgtty' \
':reprepro command:(export createsymlinks list listfilter remove update
iteratedupdate checkupdate predelete pull checkpull includedeb
includeudeb includedsc include processincoming check checkpool
rereference dumpreferences dumpunreferenced deleteunreferenced
reoverride dumptracks retrack removealltracks removetrack tidytracks
copy clearvanished gensnapshot rerunnotifiers)' \
'*::subcmd:->subcmd' && return 0
case "$state" in
(subcmd)
case "$words[1]" in
(export|update|iteratedupdate|checkupdate|predelete|pull|checkpull|check)
if [[ -n "$opt_args[--confdir]" ]]; then
distfile=${opt_args[--confdir]}/distributions
elif [[ -n "$opt_args[-b]" ]]; then
distfile=${opt_args[-b]}/conf/distributions
elif [[ -n "$opt_args[--basedir]" ]]; then
distfile=${opt_args[--basedir]}/conf/distributions
elif [[ -n "$REPREPRO_BASE_DIR" ]]; then
distfile=${REPREPRO_BASE_DIR}/conf/distributions
else
distfile=$PWD/conf/distributions
fi
codenames=($(awk '/^[Cc][Oo][Dd][Ee][Nn][Aa][Mm][Ee]: / {$1="";print}' "$distfile"))
_wanted -V 'codenames' expl 'codename' compadd -a codenames
;;
(*)
_files
;;
esac
;;
esac
Copyright 2K16 - 2K18 Indonesian Hacker Rulez