From d22a945d474fbfbc8756f2e22c9b2ca47543c5f6 Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Mon, 30 Mar 2015 12:51:15 +0200 Subject: [zshrc] Recurse-load. :) --- zshrc | 71 +++++++++++++++++++++++++++++++++---------------------------------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/zshrc b/zshrc index 036024d..372bdec 100644 --- a/zshrc +++ b/zshrc @@ -54,6 +54,26 @@ export USER HOST DOMAIN UID if [ -d $ZDOTDIR ]; then + recurse_load() { + local script=$1 + local root=${2:-$ZDOTDIR} + + for f in \ + net:$DOMAIN \ + host:$HOST \ + sys:$OSNAME \ + user:$USER \ + user:$SUDO_USER + do + if test -d $root/$f + then + local sub=$root/$f/$script + test -f $sub && echo $sub + recurse_load $script $root/$f + fi + done + } + for script in $ZDOTDIR/??_*.zsh do @@ -61,42 +81,21 @@ if [ -d $ZDOTDIR ]; then source $script __debug - for i in "net:$DOMAIN"\ - "host:$HOST"\ - "sys:$OSNAME"\ - "user:$USER"\ - "user:$USER/net:$DOMAIN"\ - "user:$SUDO_USER"\ - "net:$DOMAIN/host:$HOST"\ - "net:$DOMAIN/sys:$OSNAME"\ - "net:$DOMAIN/user:$USER"\ - "net:$DOMAIN/user:$SUDO_USER"\ - "net:$DOMAIN/host:$HOST/sys:$OSNAME"\ - "net:$DOMAIN/host:$HOST/user:$USER"\ - "net:$DOMAIN/host:$HOST/user:$SUDO_USER"\ - "net:$DOMAIN/host:$HOST/sys:$OSNAME"\ - "net:$DOMAIN/host:$HOST/sys:$OSNAME/user:$USER"\ - "net:$DOMAIN/host:$HOST/sys:$OSNAME/user:$SUDO_USER"\ - "host:$HOST/sys:$OSNAME"\ - "host:$HOST/user:$USER"\ - "host:$HOST/user:$SUDO_USER"\ - "host:$HOST/sys:$OSNAME/user:$USER"\ - "host:$HOST/sys:$OSNAME/user:$SUDO_USER" - do - specific_script=${script:h}/$i/${${script:t}/??_/} - if test -f $specific_script - then - __debug -n "$i/${${specific_script:t:r}/??_/}... "; - source $specific_script - __debug - fi - if test -f $specific_script.gpg - then - __debug -n "$i/${${specific_script:t:r}/??_/} [CRYPTED]... "; - eval $(gpg --quiet --decrypt $specific_script.gpg) - __debug - fi - done + for f in $(recurse_load ${${script:t}/??_/}) + do + case ${f:e} in + gpg) + __debug -n "${f#$ZDOTDIR/} [CRYPTED]... " + eval $(gpg --quiet --decrypt $f.gpg) + __debug + ;; + *) + __debug -n "${f#$ZDOTDIR/}... " + source $f + __debug + ;; + esac + done done fi -- cgit v1.2.3