Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

[PATCH] Fix pbuilder's --distribution,--architecture completion.



---
 Completion/Debian/Command/_pbuilder   |  4 ++--
 Completion/Debian/Type/_deb_codenames | 12 ++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)
 create mode 100644 Completion/Debian/Type/_deb_codenames

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

This function uses distro-info-data because I figured a hardcoded list of
codenames would bitrot sooner or later.  The hardcoded "6" is because
EOL dates are not available in the Debian stable version of distro-info-data.



Messages sorted by: Reverse Date, Date, Thread, Author