Added vi keybindings to my command line!
[dotfiles] / .bashrc
diff --git a/.bashrc b/.bashrc
index 649885f..116567e 100644 (file)
--- a/.bashrc
+++ b/.bashrc
@@ -55,13 +55,70 @@ if [ -d $HOME/bin ]; then
        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
 fi
 
+# Install RVM if it's not installed.
+if [ ! -f $HOME/.rvm/scripts/rvm ]; then
+    bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
+fi
+
+# Load RVM into shell session.
+[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
+
 # Automatically open screen.
 # The if statement prevents it from recursing (since screen opens bash).
 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 -o vi
+
+# Call on_prompt() every time the command prompt executes
+PROMPT_COMMAND=on_prompt
+
+export NVM_DIR="/Users/david/.nvm"
+[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
+