From 77df22a969577c908e40bed70906b57ae79a3a8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aljaz=CC=8C=20=22g5pw=22=20Srebrnic=CC=8C?= Date: Wed, 19 Feb 2014 15:24:33 +0100 Subject: [PATCH] No need to set cache policy in the main function The caching policy style for _port can be set in _port_dispatch, as it is the one that uses caching. --- src/_port | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/_port b/src/_port index 03a4895..7ac5a6e 100644 --- a/src/_port +++ b/src/_port @@ -116,12 +116,6 @@ _port() { '--no-replace\:Do\ not\ replace\ one\ port\ with\ another\ according\ to\ the\ replaced_by\ field.' \ ) - local cache_policy - zstyle -s ":completion:${curcontext}:" cache-policy cache_policy - if [[ -z "$cache_policy" ]]; then - zstyle ":completion:${curcontext}:" cache-policy _port_caching_policy - fi - _arguments -s -C \ '-v[Verbose mode (generate verbose messages)]' \ '-d[Debug mode (generate debugging messages, implies -v)]' \ @@ -141,17 +135,15 @@ _port() { '-y[Perform a dry run.]' \ '-t[Enable trace mode debug facilities on platforms that support it (Mac OS X).]' \ "1:Port actions:(($actions))" \ - '*:extra:->extra' \ + '*:extra:_port_dispatch' \ && return 0 - - case "$state" in - extra) - _port_dispatch - ;; - esac } _port_dispatch() { + local cache_policy + zstyle -s ":completion:${curcontext}:" cache-policy cache_policy + zstyle ":completion:${curcontext}:" cache-policy ${cache_policy:-_port_caching_policy} + case "$words[2]" in provides) _files @@ -170,7 +162,7 @@ _port_dispatch() { if ( [[ ${+_port_installed_packages} -eq 0 ]] || _cache_invalid PORT_INSTALLED_PACKAGES ) && ! _retrieve_cache PORT_INSTALLED_PACKAGES; then - _port_installed_packages=( $(_call_program path-all "port echo installed | cut -d ' ' -f 1") ) + _port_installed_packages=( $(_call_program path-all "port -q echo installed") ) _store_cache PORT_INSTALLED_PACKAGES _port_installed_packages fi _alternative \ @@ -181,7 +173,7 @@ _port_dispatch() { upgrade) # No good reason to actually cache outdated ports list local outdated_packages - outdated_packages=( $(_call_program path-outdated "port echo outdated | cut -d ' ' -f 1") ) + outdated_packages=( $(_call_program path-outdated "port -q echo outdated") ) _alternative -- \ "upgrade-options:Upgrade options:(($upgrade_options))" \ "ports:Outdated ports:($outdated_packages)" \ @@ -198,7 +190,7 @@ _port_dispatch() { if ( [[ ${+_port_available_packages} -eq 0 ]] || _cache_invalid PORT_AVAILABLE_PACKAGES ) && ! _retrieve_cache PORT_AVAILABLE_PACKAGES; then - _port_available_packages=( $(_call_program path-all "port echo all") ) + _port_available_packages=( $(_call_program path-all "port -q echo all") ) _store_cache PORT_AVAILABLE_PACKAGES _port_available_packages fi _alternative \ @@ -227,8 +219,16 @@ _port_select() { } _port_caching_policy() { - local reg_time comp_time - reg_time=$(stat -c '%Z' $port_prefix/var/macports/registry/registry.db) + local reg_time comp_time check_file + case "${1##*/}" in + PORT_INSTALLED_PACKAGES) + check_file=$port_prefix/var/macports/registry/registry.db + ;; + PORT_AVAILABLE_PACKAGES) + check_file=${$(port dir MacPorts)%/*/*}/PortIndex + ;; + esac + reg_time=$(stat -c '%Z' $check_file) comp_time=$(stat -c '%Z' $1) return $(( reg_time < comp_time )) }