From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 683 invoked by alias); 4 May 2016 20:55:18 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 38401 Received: (qmail 4249 invoked from network); 4 May 2016 20:55:16 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.1 From: Daniel Shahaf To: zsh-workers@zsh.org Subject: [PATCH] _deb_packages: New completion for source packages. Date: Wed, 4 May 2016 20:54:59 +0000 Message-Id: <1462395299-3502-1-git-send-email-danielsh@tarsus.local2> X-Mailer: git-send-email 2.1.4 --- Completion/Debian/Type/_deb_packages | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Completion/Debian/Type/_deb_packages b/Completion/Debian/Type/_deb_packages index 74b1518..d82515c 100644 --- a/Completion/Debian/Type/_deb_packages +++ b/Completion/Debian/Type/_deb_packages @@ -1,6 +1,6 @@ #autoload -# Usage: _deb_packages expl... avail|installed|uninstalled +# Usage: _deb_packages expl... (installed|deinstalled|xinstalled|held|uninstalled|avail|available|source) _deb_packages_update_avail () { if ( [[ ${+_deb_packages_cache_avail} -eq 0 ]] || @@ -80,6 +80,21 @@ _deb_packages_update_uninstalled () { cachevar=_deb_packages_cache_uninstalled } +_deb_packages_update_source () { + if ( [[ ${+_deb_packages_cache_source} -eq 0 ]] || + _cache_invalid DEBS_source ) && ! _retrieve_cache DEBS_source; + then + _deb_packages_cache_source=( + # requires apt >= 1.1.8 + # if dpkg --compare-versions "$(dpkg-query --show --showformat '${Version}\n' apt)" '>=' '1.1.8' ; then ...; else ...; fi + ${(f)"$(/usr/lib/apt/apt-helper cat-file $(apt-get indextargets --format '$(FILENAME)' 'Created-By: Sources' 2>/dev/null) 2>/dev/null | sed -ne 's/^Package: //p' | uniq)"} + ) + + _store_cache DEBS_source _deb_packages_cache_source + fi + cachevar=_deb_packages_cache_source +} + _deb_packages () { local command="$argv[$#]" expl cachevar pkgset update_policy @@ -88,14 +103,14 @@ _deb_packages () { zstyle ":completion:*:*:$service:*" cache-policy _debs_caching_policy fi - [[ "$command" = (installed|deinstalled|xinstalled|held|uninstalled|avail|available) ]] || { + [[ "$command" = (installed|deinstalled|xinstalled|held|uninstalled|avail|available|source) ]] || { _message "unknown command: $command" return } zstyle -s ":completion:${curcontext}:" packageset pkgset - [[ "$pkgset" = (installed|deinstalled|xinstalled|held|uninstalled|avail|available) ]] || { + [[ "$pkgset" = (installed|deinstalled|xinstalled|held|uninstalled|avail|available|source) ]] || { pkgset="$command" }