Allow a .local script to load after mine
[zsh.git] / .zsh / .zshrc
index 2edd28a..9596022 100644 (file)
@@ -11,21 +11,27 @@ ZSH=${HOME}/.zsh
 
 debug ()
 {
-    [ "${DEBUG}" = "no" ] && return
+    [[ "${DEBUG}" = "no" ]] && return
     msg=${1:-""}
     nl=${2:-""}
     echo ${nl} "${msg}$reset_color"
 }
 
+# May want to use colors in log output...
+[[ "${DEBUG}" = "no" ]] && autoload -U colors && colors
 debug "Starting zsh"
-# Want to use colors in log output...
-autoload -U colors && colors
 
+autoload -Uz zrecompile
+zrecompile -q -p -R ${ZDOTDIR}/.zshrc -- -M ${ZDOTDIR}/var/.zcompdump
 
+# Idea copied from https://github.com/hugues/zdotdir/blob/master/zshrc
+# AUTHOR: Hugues Hiegel <hugues@hiegel.fr>
 # Most of my config is splitted into files and directories
 if [ -d ${ZDOTDIR} ]; then
     for script in ${ZDOTDIR}/??_*.zsh;  do
-        debug "Loading ${${script:t:r}/??_/}... " -n
+        lscript=${script:t:r}
+        debug "Loading ${lscript/??_/}... " -n
+        zrecompile -q -p -U -R ${script}
         source $script
         debug "$fg_no_bold[green]done"
         for i in "net:$DOMAIN"                                     \
@@ -59,10 +65,17 @@ if [ -d ${ZDOTDIR} ]; then
             #debug "Checking $specific_script... "
             if [ -r ${specific_script} ]; then
                 debug "Loading $i/${${specific_script:t:r}/??_/}... " -n
+                zrecompile -q -p -U -R ${specific_script}
                 source ${specific_script}
                 debug "$fg_no_bold[green]done"
             fi
         done
+        if [[ -f ${ZDOTDIR}/${lscript}.zsh.local ]]; then
+            debug "Loading local ${lscript/??_/}... " -n
+            zrecompile -q -p -U -R ${lscript}.zsh.local
+            source ${script}.local
+            debug "$fg_no_bold[green]done"
+        fi
     done
 fi
 
@@ -71,3 +84,5 @@ if [ ! -z "$SUDO_USER" ]; then
     export HOME=~$USER
     [ "`pwd`" = ~$SUDO_USER ] && cd
 fi
+
+[[ -f ${ZDOTDIR}/.zshlate ]] && source ${ZDOTDIR}/.zshlate || /bin/true