That whitespace was important
[zsh.git] / .zsh / zshenv.home
index 56b49ef..1ed87a0 100644 (file)
@@ -5,7 +5,25 @@
 # Written by Joerg Jaspert <joerg@debian.org>
 #
 ############
-ZDOTDIR=${ZDOTDIR:-"${HOME}/.zsh"}
+# This assumes that $HOME/.zshenv is a symlink to
+# $ZDOTDIR/zshenv.home (as is my default).
+if zp=$(readlink -f ${HOME}/.zshenv 2>/dev/null); then
+    zp=${zp%/*}
+elif zp=$(greadlink -f ${HOME}/.zshenv 2>/dev/null); then
+    # MacOS readlink isn't up to the task, user needs to
+    # install the gnu coreutils for it
+    zp=${zp%/*}
+else
+    # If both fail, use the "traditional" way of hardcoding
+    zp="${HOME}/.zsh"
+fi
+ZDOTDIR=${ZDOTDIR:-$zp}
+# In case the user did not symlink us, but copy, we fallback to
+# the traditional way too.
+if [[ ${HOME} == ${ZDOTDIR} ]]; then
+    ZDOTDIR="${HOME}/.zsh"
+fi
+
 [ -r "${ZDOTDIR}/zshenv" ] && source "${ZDOTDIR}/zshenv"
 
 # If you want to "profile" the shell initialization, enable