]> git.sev.monster Git - dotfiles.git/commitdiff
zsh: add load-site-dotfile to replace site source
authorsev <git@sev.monster>
Tue, 10 Oct 2023 15:16:10 +0000 (10:16 -0500)
committersev <git@sev.monster>
Fri, 5 Apr 2024 21:27:40 +0000 (16:27 -0500)
base/.zshenv
etc/zsh/.zlogin
etc/zsh/.zlogout
etc/zsh/.zprofile
etc/zsh/.zshrc
etc/zsh/functions/Misc/load-site-dotfile [new file with mode: 0644]

index 45ea3392b6130062cb6a8b789d38dcf4aee6099d..274fc104ca1807c986eaf6fc68706496b0287b65 100644 (file)
@@ -2,9 +2,6 @@
 
 export ZDOTDIR=${XDG_CONFIG_HOME:-~/.config}/zsh
 
-### load site-specific
-[[ -f ${ZDOTDIR:-~}/.zshenv.local ]] && source ${ZDOTDIR:-~}/.zshenv.local
-
 ### fix broken term
 if [[ ! -v TERM ]] {
     TERM=xterm-256color >/dev/null 2>&1
@@ -27,6 +24,7 @@ if [[ ! -v _sev_first_display && ( -v DISPLAY || -v WAYLAND_DISPLAY ) ]] {
     _sev_refresh_gpgagent=
     [[ ! -o login ]] && source ${ZDOTDIR:-~}/.zprofile
 } elif [[ ! -o login && $SHLVL -eq 1 && ${+TERMUX_VERSION} -eq 0 ]] {
-    ### early zprofile sourcing for first shell even if not a login shell
+    ### early zprofile sourcing for first shell even if not a login shell,
+    ### since Termux does not start login shell as first process
     source ${ZDOTDIR:-~}/.zprofile
 }
index 8b4aab61354d771a0d9c61ddc91c626f6541ddbc..e6499359c85b1c3d02e40753670bb282a7c93cd8 100644 (file)
@@ -1,7 +1,7 @@
 # NOTE: all logic here moved to .zprofile, see comments there for rationale
 
 ### load site-specific
-if [[ -f ${ZDOTDIR:-~}/.zlogin.local ]] { source ${ZDOTDIR:-~}/.zlogin.local }
+load-site-dotfile zlogin
 
 ### cd for convenience
 cd ${_sev_home:-~}
index cac79397d22d14ad8c98a93a0b64c4d5e008f91e..c0054214f1762486b9c16cbcd04a390c26e919c3 100644 (file)
@@ -16,4 +16,4 @@ if [[ -o interactive ]] {
 }
 
 ### load site-specific
-if [[ -f ${ZDOTDIR:-~}/.zlogout.local ]] { source ${ZDOTDIR:-~}/.zlogout.local }
+load-site-dotfile zlogout
index d9c05b31b672d5caeecbe65b7b1adc5a0d5c82e9..4f1145957c29860868fc5f88f9124a28b97af68e 100644 (file)
@@ -62,10 +62,6 @@ function _sev_zcleanup {
     unset x p y
 }
 
-### lang
-export CHARSET=${CHARSET:-UTF-8}
-export LANG=${LANG:-en_US.UTF-8}
-
 ### path
 # NOTE: we utilize the fact that unique arrays keep the first occurrence and
 #       remove any further occurences to capture elements from the old PATH
@@ -103,6 +99,17 @@ if [[ ! -v _sev_setup_path || -o login ]] {
     export _sev_setup_path=
 }
 
+### autoload to load site specific dotfiles now that fpath is set
+autoload -Uz load-site-dotfile
+
+### load zshenv site-specific
+# NOTE: this has to be here since fpath isn't set in .zshenv
+load-site-dotfile zshenv
+
+### lang
+export CHARSET=${CHARSET:-UTF-8}
+export LANG=${LANG:-en_US.UTF-8}
+
 ### xdg local dir
 # NOTE: need this for tmp, so confirm it exists.
 # XXX: perms are not specified for XDG dirs except runtime, but I think 760
@@ -430,4 +437,4 @@ unfunction _gpg_socketpath
 
 
 ### load site-specific
-if [[ -f ${ZDOTDIR:-~}/.zprofile.local ]] { source ${ZDOTDIR:-~}/.zprofile.local }
+load-site-dotfile zprofile
index 5b9c79a1b8ede832ea13b4ab1c3d109366183fc6..6e5fcca72955cb370df735fc899af68110963e94 100644 (file)
@@ -315,4 +315,4 @@ autoload -Uz promptinit && promptinit
 prompt arrows
 
 ### load site-specific
-if [[ -f ${ZDOTDIR:-~}/.zshrc.local ]] { source ${ZDOTDIR:-~}/.zshrc.local }
+load-site-dotfile zshrc
diff --git a/etc/zsh/functions/Misc/load-site-dotfile b/etc/zsh/functions/Misc/load-site-dotfile
new file mode 100644 (file)
index 0000000..275912d
--- /dev/null
@@ -0,0 +1,10 @@
+# load site-specific dotfiles
+
+emulate -L zsh
+
+local x p
+typeset -aU p
+p=({${ZDOTDIR:-~},~}/{.,}${1#.}.local)
+for x ($p) {
+    [[ -f $x ]] && source $x
+}
This page took 0.042637 seconds and 4 git commands to generate.