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
|