git.fiddlerwoaroof.com
tmp_zshrc_work
8337824e
 # -*- mode: sh; sh-shell: zsh;-*-
 #zmodload zsh/zprof
 PLUGIN_DIR="${PLUGIN_DIR:-$HOME/.zsh.d}"
 
 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")}
     for depend in $depends; do
 	script_depends[$1]+="$depend:"
     done
 }
 
 load_depends() {
     for depend in ${(s<:>)script_depends[$1]}; do
 	if [[ -z $loaded_depends[$depend] ]]; then
 	  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"
 	  fi
 	  loaded_depends[$depend]=1
 	else
 	fi
     done
 }
 
 init_scripts=( $PLUGIN_DIR/*.{,z}sh(N) ) 
 
 PATH="<<<:$PATH:>>>"
 for x in $init_scripts; do
     build_depends "$x"
     load_depends "$x"
     source "$x"
 done