[[ -n "$AXZSH_DEBUG" ]] \
&& echo " - $plugin ($type): functions ..."
axzsh_fpath+=("$dname/functions")
+
+ # Add function path to cache file.
+ [[ -n "$cache_file" ]] \
+ && echo "axzsh_fpath+=('$dname/functions')" >>$cache_file
fi
if [[ -r "$fname" ]]; then
if [[ -n "$cache_file" ]]; then
# Add plugin data to cache
- printf "# BEGIN: %s\ninit()\n{\n" "$fname" >>"$cache_file"
+ printf "# BEGIN: %s\nax_plugin_init()\n{\n" "$fname" >>"$cache_file"
case "$fname" in
*"/repos/"*)
echo "[[ -n \"\$AXZSH_DEBUG\" ]] && echo ' - $plugin ($type): \"$fname\" ...'" >>$cache_file
echo "[[ -n \"\$AXZSH_DEBUG\" ]] && echo ' - $plugin ($type, cached) ...'" >>$cache_file
"$cat_cmd" "$fname" >>"$cache_file"
esac
- printf "}\ninit\n# END: %s\n\n" "$fname" >>"$cache_file"
+ printf "}\nax_plugin_init\n# END: %s\n\n" "$fname" >>"$cache_file"
fi
fi
if [[ -r "$cache_file" ]]; then
# Cache file exists, use it!
+ # But when in the "zshrc" stage, make sure that the "zprofile" stage
+ # has already been handled (this uses the "01_zprofile" plugin which
+ # is used in the "zshrc.cache" as well, but can't be used successfully
+ # there because it becomes sourced inside of a ZSH function; so we have
+ # to source it here in the global context manually ...):
+ [[ -z "$AXZSH_ZPROFILE_READ" && "$script_type" = "zshrc" ]] \
+ && source "$AXZSH/core/01_zprofile/01_zprofile.zshrc"
[[ -n "$AXZSH_DEBUG" ]] \
&& echo " - Reading cache file \"$cache_file\" ..."
source "$cache_file"
+ unfunction ax_plugin_init
else
# No cache file available.
# Setup list of plugins to load: