export PATH
fi
+# Put $HOME/.cabal/bin on the path. Installing cabal doesn't
+# automatically put installed packages on the path.
+if [ -d $HOME/.cabal/bin ]; then
+ PATH="$HOME/.cabal/bin:$PATH"
+ export PATH
+fi
+
+# Put /usr/local/bin (where homebrew installs stuff) before /usr/bin on the
+# path. This means that if a program exists at both locations, calls to that
+# program will use the homebrew version rather than the system version.
+PATH="/usr/local/bin:$PATH"
+export PATH
+
# Run a machine-specific bashrc (if it exists).
if [ -f $HOME/.bashrc_local ]; then
source $HOME/.bashrc_local
if [ $TERM != screen ]; then
screen
fi
+
+# Gets a directory named .env if it exists in the currend directory or any of its parents
+get_env() {
+ if [ -d "$1/.env" ] ; then
+ echo "$1/.env"
+ else
+ if [ -d "$1/.." ] ; then
+ get_env "$1/.."
+ fi
+ fi
+}
+
+on_prompt() {
+ # Load a virtualenv environment if it exists in a file named .env
+ env_folder=$(get_env $(pwd))
+
+ if [ -d "$env_folder" ] ; then
+ if [[ $VIRTUAL_ENV != $env_folder ]] ; then
+ echo "Activating env '$env_folder'"
+ source "$env_folder/bin/activate"
+ fi
+ else
+ if [ -d "$VIRTUAL_ENV" ] ; then
+ deactivate
+ fi
+ fi
+}
+
+# Set vi keybindings
+set -o vi
+
+# Call on_prompt() every time the command prompt executes
+PROMPT_COMMAND=on_prompt
+