summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Completion/Debian/Command/_pbuilder4
-rw-r--r--Completion/Debian/Type/_deb_codenames12
3 files changed, 20 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index c9764b70a..687497d27 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-08-01  Daniel Shahaf  <d.s@daniel.shahaf.name>
+
+	* 41474: Completion/Debian/Command/_pbuilder,
+	Completion/Debian/Type/_deb_codenames: Fix pbuilder's
+	--distribution,--architecture completion.
+
 2017-07-31  Peter Stephenson  <p.w.stephenson@ntlworld.com>
 
 	* unposted: Config/version.mk: test release 5.3.1-test-2.
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