48dd7b69 | # -*- mode: sh; sh-shell: zsh;-*- |
6e9f4c56 | # set -x |
fe429cbf | # zmodload zsh/zprof |
48dd7b69 | |
9abf345f | if [[ "$TERM" == "dumb" ]]; then |
15e63e4e | unsetopt zle unsetopt prompt_cr unsetopt prompt_subst unfunction precmd unfunction preexec PS1='$ ' |
fe429cbf | else |
9abf345f | PLUGIN_DIR="${PLUGIN_DIR:-$HOME/.zsh.d}" |
cf334537 | |
9abf345f | local script_depends loaded_depends typeset -A script_depends typeset -A loaded_depends get_depends() { awk -F: '$0=="###" || $1 != "#" { exit } $1="depends-on" {print $3}' "$1" } build_depends() { local -a depends depends=(${(@f)$(get_depends "$1")}) |
fe429cbf | if [[ -z $depends ]]; then script_depends[$1]=- fi |
9abf345f | for depend in $depends; do script_depends[$1]+="$depend:" done } |
cf334537 | |
9abf345f | load_depends() { for depend in ${(s<:>)script_depends[$1]}; do |
fe429cbf | if [[ -z $loaded_depends[$depend] && "$depend" != "-" ]]; then |
15e63e4e | loaded_depends[$depend]=1 local fn="$PLUGIN_DIR/dependencies/$depend.zsh" if [[ -f $fn ]]; then if [[ -z $script_depends[$fn] ]]; then build_depends "$fn" fi load_depends "$fn" source $fn else echo "$fn missing for $1" |
9abf345f | fi |
61d4ce27 | else fi |
9abf345f | done } |
cf334537 | |
fe429cbf | init_scripts=( $PLUGIN_DIR/*.{,z}sh(N) ) |
64b97809 | |
6e9f4c56 | if [[ -f ~/zshrc.depends ]]; then source ~/zshrc.depends fi |
e3ad5743 | unset __ETC_PROFILE_NIX_SOURCED |
9abf345f | for x in $init_scripts; do |
6e9f4c56 | if ! [[ -f ~/zshrc.depends ]]; then |
fe429cbf | build_depends "$x" fi |
6e9f4c56 | load_depends "$x" |
9abf345f | source "$x" done |
6e9f4c56 | if ! [[ -f ~/zshrc.depends ]]; then echo "script_depends=(${(kv)script_depends})" >| ~/zshrc.depends fi |
9abf345f | fi |