From f2cff3dbf37504945a586f364112a41dfb7060c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aljaz=CC=8C=20=22g5pw=22=20Srebrnic=CC=8C?= Date: Sun, 24 Mar 2013 22:31:08 +0100 Subject: [PATCH] Use own cache policy This checks modification dates of the repository database and completion cache and refreshes the latter if it is older than the database. --- src/_port | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/_port b/src/_port index 11e91dd..064928a 100644 --- a/src/_port +++ b/src/_port @@ -70,6 +70,12 @@ _port() { '*:extra:->extra' \ && return 0 + 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 + case "$state" in extra) case "$words[2]" in @@ -133,4 +139,11 @@ _port_select() { fi } +_port_caching_policy() { + local reg_time comp_time + reg_time=$(stat -c '%Z' $port_prefix/var/macports/registry/registry.db) + comp_time=$(stat -c '%Z' $1) + return $(( reg_time < comp_time )) +} + _port "$@"