Browse Source

fix(core): use `$HOME/.cache` if default cache dir is non-writable (#10193)

Fixes #10193
Marc Cornellà 2 years ago
parent
commit
8784e88552
1 changed files with 6 additions and 1 deletions
  1. 6 1
      oh-my-zsh.sh

+ 6 - 1
oh-my-zsh.sh

@@ -7,7 +7,12 @@ if [[ -z "$ZSH_CACHE_DIR" ]]; then
   ZSH_CACHE_DIR="$ZSH/cache"
 fi
 
-# Create completions cache dir and add to $fpath
+# Make sure $ZSH_CACHE_DIR is writable, otherwise use a directory in $HOME
+if [[ ! -w "$ZSH_CACHE_DIR" ]]; then
+  ZSH_CACHE_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/ohmyzsh"
+fi
+
+# Create cache and completions dir and add to $fpath
 mkdir -p "$ZSH_CACHE_DIR/completions"
 (( ${fpath[(Ie)$ZSH_CACHE_DIR/completions]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath)