X-Git-Url: https://code.kerkeslager.com/?p=dotfiles;a=blobdiff_plain;f=.bashrc;h=116567e14d1d9901600989941cce0b0271fc75d9;hp=68d85a6797c8a167469f2574edd5f168d0db3d36;hb=940c04349e64a17a7c7b4877c6e4db56d673a1d2;hpb=3a0b4540254742384f7ac29ea30127755f4cd5a5 diff --git a/.bashrc b/.bashrc index 68d85a6..116567e 100644 --- a/.bashrc +++ b/.bashrc @@ -55,6 +55,19 @@ 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 @@ -73,3 +86,39 @@ fi 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 +