host=${$(hostname)//.*/}
# Load environmental related settings used by all shells.
-# If the default file exists, load it.
if [[ -f ~/.shell/env ]]; then
source ~/.shell/env
-fi
-# If an env file for the current hostname (first part before a dot) exists load
-# it, otherwise load env.local if available.
-if [[ -f ~/.shell/env.$host ]]; then
- source ~/.shell/env.$host
-elif [[ -f ~/.shell/env.local ]]; then
- source ~/.shell/env.local
+# Fallback functions as ~/.shell/env couldn't be loaded.
+else
+ function source_debug() {
+ echo $@
+ }
+ function source_config() {
+ echo "Couldn't load source_config(), can't source files." >&2
+ }
fi
+source_debug "sourcing ~/.zsh/env"
-# If an env file for the current hostname (first part before a dot) exists load
-# it, otherwise load env.local if available.
-if [[ -f ~/.zsh/env.$host ]]; then;
- source ~/.zsh/env.$host
-elif [[ -f ~/.zsh/env.local ]]; then;
- source ~/.zsh/env.local
-fi
+# Load global env file for current hostname (first part before a dot) or
+# global env.local.
+source_config ~/.shell "" env $host
+
+# Load rc file for current OS.
+source_config ~/.zsh os env $(uname) nolocal
+# Load env file for current hostname (first part before a dot) or env.local.
+source_config ~/.zsh host env $host
+
+source_debug "finished sourcing ~/.zsh/env"