git.fiddlerwoaroof.com
zsh/zshrc_work
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