diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh
index a6fca815..dd2b5658 100644
--- a/modules/homebrew/init.zsh
+++ b/modules/homebrew/init.zsh
@@ -22,18 +22,15 @@ fi
 # variables as they are already handled in standard zsh configuration.
 if (( $+commands[brew] )); then
   cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/brew-shellenv-cache.zsh"
-  if [[ "${commands[brew]}" -nt "$cache_file" \
+  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}"
+      || ! -s "$cache_file" ]]; then
+    mkdir -p "$cache_file:h"
+    # Cache the result.
+    echo "${(@M)${(f)"$(brew shellenv 2> /dev/null)"}:#export HOMEBREW*}" >! "$cache_file" 2> /dev/null
   fi
-  source "${cache_file}"
+
+  source "$cache_file"
   unset cache_file
 fi