summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oh-my-zsh.sh7
1 files changed, 6 insertions, 1 deletions
diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh
index 442972a9a..cea466100 100644
--- a/oh-my-zsh.sh
+++ b/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)