about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Debian/Command/.distfiles28
-rw-r--r--Completion/Debian/Command/_reprepro70
3 files changed, 85 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index e245f2ca7..ca3688343 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-07-05  Clint Adams  <clint@zsh.org>
+
+	* 23654: Completion/Debian/Command/_reprepro: add completion for
+	reprepro.
+
 2007-07-03  Clint Adams  <clint@zsh.org>
 
 	* 23653: Completion/Debian/Command/_apt: add completion for apt-get
diff --git a/Completion/Debian/Command/.distfiles b/Completion/Debian/Command/.distfiles
index 7b96374b3..5361f93ae 100644
--- a/Completion/Debian/Command/.distfiles
+++ b/Completion/Debian/Command/.distfiles
@@ -1,21 +1,13 @@
 DISTFILES_SRC='
 .distfiles
-_a2utils
-_apt                  _aptitude             
-_apt-file
-_apt-move
-_apt-show-versions    _auto-apt             _bts
-_bug                  _dak
-_dchroot              _debchange
-_dchroot-dsa
-_debdiff              _debfoster            _debsign
-_dlocate              _dpkg                 _dpkg-cross
-_dpkg_source          _dput                 _dupload
-_invoke-rc.d
-_linda                _lintian              _madison
-_make-kpkg            _mergechanges         _module-assistant
-_piuparts             _schroot              _toolchain-source
-_update-alternatives  _update-rc.d          _uscan
-_wajig                _wanna-build
-_cdbs-edit-patch
+_a2utils            _dak          _dpkg_source       _piuparts
+_apt                _dchroot      _dput              _reprepro
+_apt-file           _dchroot-dsa  _dupload           _schroot
+_aptitude           _debchange    _invoke-rc.d       _toolchain-source
+_apt-move           _debdiff      _linda             _update-alternatives
+_apt-show-versions  _debfoster    _lintian           _update-rc.d
+_auto-apt           _debsign      _madison           _uscan
+_bts                _dlocate      _make-kpkg         _wajig
+_bug                _dpkg         _mergechanges      _wanna-build
+_cdbs-edit-patch    _dpkg-cross   _module-assistant
 '
diff --git a/Completion/Debian/Command/_reprepro b/Completion/Debian/Command/_reprepro
new file mode 100644
index 000000000..44ed1548c
--- /dev/null
+++ b/Completion/Debian/Command/_reprepro
@@ -0,0 +1,70 @@
+#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