# Main bash configuration file.
+#
+# Is sourced by all interactive shells and other shells like scp or rcp.
# Get the current hostname (first part before a dot).
host=$(echo $(hostname) | sed -e 's/\..*$//')
# Load environmental related settings used by all shells.
-# If the default file exists, load it.
if [ -f ~/.shell/env ]; then
- source ~/.shell/env
+ . ~/.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
-# 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
+
+source_debug "sourcing ~/.bash/rc"
+
+# Load global env file for current hostname (first part before a dot) or
+# global env.local.
+source_config ~/.shell "" env $host
+
+
+# Check if this is an interactive shell. Abort if not to prevent problems with
+# scp and rcp. Taken from default Debian bashrc. Thanks.
+if [[ $- != *i* ]]; then
+ return
fi
+# Set the prompt; hostname and current working directory are displayed.
+# Hostname is displayed in green, current directory in blue.
+PS1='\[\033[01;32m\]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$ '
+
# Use Vi(m) style in bash.
set -o vi
-
-# If a rc file for the current hostname (first part before a dot) exists load
-# it, otherwise load rc.local if available.
-if [ -f ~/.bash/rc.$host ]; then
- source ~/.bash/rc.$host
-elif [ -f ~/.bash/rc.local ]; then
- source ~/.bash/rc.local
+# Load aliases and similar functions also used by other shells.
+if [[ -f ~/.shell/aliases ]]; then
+ . ~/.shell/aliases
fi
+
+
+# Load rc file for current hostname (first part before a dot) or rc.local.
+source_config ~/.bash host rc $host
+
+source_debug "finished sourcing ~/.bash/env"
+
+# vim: ft=sh