# Zsh configuration file for environment related options.
-# Use UTF-8 encoding in the terminal.
-export LC_ALL=en_US.UTF-8
+# Get the current hostname (first part before a dot).
+host=${$(hostname)//.*/}
-# Set Vim as my editor.
-export EDITOR=vim
+# Load environmental related settings used by all shells.
+if [[ -f ~/.shell/env ]]; then
+ . ~/.shell/env
+# 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
-# Set less as my pager.
-export PAGER=less
+source_debug "sourcing ~/.zsh/env"
-# Set options for less. If the command output fits on the current terminal
-# page less automatically quits. Also allows the use with colordiff.
-export LESS="--no-init --search-skip-screen --quit-if-one-screen \
---RAW-CONTROL-CHARS"
+# Make sure elements in PATH are unique.
+typeset -U path PATH
-# If an env.local file exists load it, otherwise load an env file for the
-# current hostname (first part before a dot) if it exists.
-host=${$(hostname)//.*/}
-if [[ -f ~/.zsh/env.local ]]; then;
- source ~/.zsh/env.local
-elif [[ -f ~/.zsh/env.$host ]]; then;
- source ~/.zsh/env.$host
-fi
+
+# Load global env file for current hostname (first part before a dot) or
+# global env.local.
+source_config ~/.shell "" env $host
+
+# 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"
+
+# vim: ft=zsh