Skip to content

Commit

Permalink
Cache brew shellenv results
Browse files Browse the repository at this point in the history
This could sometimes be slow (as with any external command execution)
but the result should almost never change.
  • Loading branch information
hotpxl authored and indrajitr committed Apr 9, 2024
1 parent a79c3b4 commit 005709d
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion modules/homebrew/init.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,20 @@ fi
# Load 'HOMEBREW_' prefixed variables only. Avoid loading 'PATH' related
# variables as they are already handled in standard zsh configuration.
if (( $+commands[brew] )); then
eval "${(@M)${(f)"$(brew shellenv 2> /dev/null)"}:#export HOMEBREW*}"
cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/brew-shellenv-cache.zsh"
if [[ "${commands[brew]}" -nt "$cache_file" \
|| "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
|| ( ! -n ${cache_file}(#qNmw-1) ) ]]; then
# Rebuild cache if either
# 1. brew is newer than the cache file
# 2. .zpreztorc is newer than the cache file
# 3. cache file doesn't exist
# 4. cache file is older than a week
mkdir -p "${cache_file:h}"
echo "${(@M)${(f)"$(brew shellenv 2> /dev/null)"}:#export HOMEBREW*}" >! "${cache_file}"
fi
source "${cache_file}"
unset cache_file
fi

#
Expand Down

0 comments on commit 005709d

Please # to comment.