summaryrefslogtreecommitdiff
path: root/Completion
diff options
context:
space:
mode:
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Debian/Command/_pbuilder4
-rw-r--r--Completion/Debian/Type/_deb_codenames12
2 files changed, 14 insertions, 2 deletions
diff --git a/Completion/Debian/Command/_pbuilder b/Completion/Debian/Command/_pbuilder
index 9322d036a..6377538b2 100644
--- a/Completion/Debian/Command/_pbuilder
+++ b/Completion/Debian/Command/_pbuilder
@@ -14,8 +14,8 @@ else
'--buildresult:location:_files -/' \
'--mirror:URL:_urls' \
'--othermirror:URL:_urls' \
- '--distribution:suite:(breezy dapper edgy etch feisty gutsy hardy hoary intrepid jaunty jessie karmic lenny lucid potato sarge sid squeeze warty woody' \
- '--architecture:architecture:i_deb_architectures' \
+ '--distribution:codename:_deb_codenames' \
+ '--architecture:architecture:_deb_architectures' \
'--components:component:(main contrib non-free)' \
'--override-config' \
'--hookdir:location:_files -/' \
diff --git a/Completion/Debian/Type/_deb_codenames b/Completion/Debian/Type/_deb_codenames
new file mode 100644
index 000000000..feea8b49a
--- /dev/null
+++ b/Completion/Debian/Type/_deb_codenames
@@ -0,0 +1,12 @@
+#autoload
+
+local distro codenames ret=1
+
+for distro in /usr/share/distro-info/*.csv(N); do
+ # TODO: magic number "6"
+ codenames=( ${(f)"$(<$distro tail -n6 | cut -d, -f3,1)"} )
+ codenames=( ${codenames/(#b)(*),(*)/${match[2]}:${match[1]}} )
+ _describe -V -t codename-${distro:t:r} "${distro:t:r} codenames" codenames && ret=0
+done
+
+return ret