Add cache invalidation in zsh completion when the DOCKER_HIDE_LEGACY_COMMANDS envvar changes

Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
This commit is contained in:
Steve Durrheimer 2017-01-24 09:00:31 +01:00 committed by Tibor Vass
parent e6a4e7507c
commit 8691d0dd68
1 changed files with 16 additions and 2 deletions

View File

@ -2344,14 +2344,28 @@ __docker_caching_policy() {
__docker_commands() { __docker_commands() {
local cache_policy local cache_policy
integer force_invalidation=0
zstyle -s ":completion:${curcontext}:" cache-policy cache_policy zstyle -s ":completion:${curcontext}:" cache-policy cache_policy
if [[ -z "$cache_policy" ]]; then if [[ -z "$cache_policy" ]]; then
zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy
fi fi
if ( [[ ${+_docker_subcommands} -eq 0 ]] || _cache_invalid docker_subcommands) \ if ( (( ! ${+_docker_hide_legacy_commands} )) || _cache_invalid docker_hide_legacy_commands ) \
&& ! _retrieve_cache docker_subcommands; && ! _retrieve_cache docker_hide_legacy_commands;
then
_docker_hide_legacy_commands="${DOCKER_HIDE_LEGACY_COMMANDS}"
_store_cache docker_hide_legacy_commands _docker_hide_legacy_commands
fi
if [[ "${_docker_hide_legacy_commands}" != "${DOCKER_HIDE_LEGACY_COMMANDS}" ]]; then
force_invalidation=1
_docker_hide_legacy_commands="${DOCKER_HIDE_LEGACY_COMMANDS}"
_store_cache docker_hide_legacy_commands _docker_hide_legacy_commands
fi
if ( [[ ${+_docker_subcommands} -eq 0 ]] || _cache_invalid docker_subcommands ) \
&& ! _retrieve_cache docker_subcommands || [[ ${force_invalidation} -eq 1 ]];
then then
local -a lines local -a lines
lines=(${(f)"$(_call_program commands docker 2>&1)"}) lines=(${(f)"$(_call_program commands docker 2>&1)"})