}
precmd_functions+=(zshrc_restart_precmd)
+
+# RELOAD SETTINGS
+
+zshenv_reload_time=0 # load before first command
+
+# Automatically source ~/.zsh/env.update when the file changes (and exists).
+# Can be used e.g. to update SSH_AGENT_PID and GPG_AGENT_INFO variables in
+# running zsh processes. Sourced immediately before executing shell commands
+# (preexec) to ensure the environment is always up to date.
+zshenv_reload_preexec() {
+ local file
+ file=~/.zsh/env.update
+
+ local stat
+ if ! zstat -A stat +mtime $file 2>/dev/null; then
+ return
+ fi
+ # File wasn't modified, nothing to do.
+ if [[ $stat -le $zshenv_reload_time ]]; then
+ return
+ fi
+ zshenv_reload_time=$EPOCHSECONDS
+
+ unsetopt warn_create_global
+ . $file
+ setopt warn_create_global
+}
+preexec_functions+=(zshenv_reload_preexec)
+
# vim: ft=zsh