]> arthur.barton.de Git - ax-zsh.git/blobdiff - core/01_zprofile/01_zprofile.zshrc
Cache: Read "zprofile" in the correct context in "zshrc" stage
[ax-zsh.git] / core / 01_zprofile / 01_zprofile.zshrc
index 732318d4dec27f9e4b31459e811518cdf56badfb..93a423d43e19b925460599d73cf115bf1c160be1 100644 (file)
 unset PS1
 
 [[ -n "$AXZSH_DEBUG" ]] && echo "» 01_zprofile.zsh:"
-for plugin ($plugin_list); do
-       axzsh_load_plugin "$plugin" "zprofile"
-done
+
+if [[ -r "$AXZSH/cache/zprofile.cache" ]]; then
+       # Cache file exists, use it!
+       [[ -n "$AXZSH_DEBUG" ]] \
+               && echo "   - Reading cache file \"$AXZSH/cache/zprofile.cache\" ..."
+       source "$AXZSH/cache/zprofile.cache"
+else
+       # No cache file, so read plugins manually. The "plugin_list" can be
+       # empty, when the "zshrc" stage has been read in using the cache file,
+       # but there is no cache file for the "zprofile" stage. In that case
+       # the "plugin_list" must be assembled right now (see "ax.zsh" file!):
+       if [[ -z "$plugin_list" ]]; then
+               typeset -U plugin_list
+               plugin_list=(
+                       "$AXZSH/core/"[0-5]*
+                       "$AXZSH/active_plugins/"*(N)
+                       "$AXZSH/core/"[6-9]*
+               )
+       fi
+       for plugin ($plugin_list); do
+               axzsh_load_plugin "$plugin" "zprofile"
+       done
+fi
 AXZSH_ZPROFILE_READ=2
+
 [[ -n "$AXZSH_DEBUG" ]] && echo "» 01_zprofile.zsh (end)"