Add nvm
[dotfiles] / .bashrc
diff --git a/.bashrc b/.bashrc
index 80aa76e..f7bcae4 100644 (file)
--- a/.bashrc
+++ b/.bashrc
@@ -1,4 +1,5 @@
 # ~/.bashrc: executed by bash(1) for non-login shells.
+cat /dev/null > ~/.bash_history
 
 # If not running interactively, don't do anything
 case $- in
@@ -78,42 +79,61 @@ fi
 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
+
 # Automatically open screen.
 # The if statement prevents it from recursing (since screen opens bash).
-if [ $TERM != screen ]; then
+if [ $TERM != screen ] && [ $TERM != screen.xterm-256color ] ; then
        screen
 fi
 
-# Gets a directory named .env if it exists in the currend directory or any of its parents
+# Gets a directory named .env or .venv if it exists in the currend directory or any of its parents
 get_env() {
-    if [ -d "$1/.env" ] ; then
-        echo "$1/.env"
+  if [ -d "$1/.env" ] ; then
+    echo "$1/.env"
+  else
+    if [ -d "$1/.venv" ] ; then
+      echo "$1/.venv"
     else
-        if [ -d "$1/.." ] ; then
-            get_env "$1/.."
-        fi
+      if [ -d "$1/.." ] ; then
+        get_env "$1/.."
+      fi
     fi
+  fi
+}
+
+get_absolute_path() {
+  python3 -c "import os; print(os.path.realpath('$1'))"
 }
 
 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
+  # 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 != $(get_absolute_path $env_folder) ]] ; then
+      echo "Activating env '$env_folder'"
+      source "$env_folder/bin/activate"
     fi
+  else
+    if [ -d "$VIRTUAL_ENV" ] ; then
+      deactivate
+    fi
+  fi
 }
 
+# Call on_prompt() every time the command prompt executes
+PROMPT_COMMAND=on_prompt
+
 # Set vi keybindings
 set -o vi
 
-# Call on_prompt() every time the command prompt executes
-PROMPT_COMMAND=on_prompt
+# pip should only run if there is a virtualenv currently activated
+export PIP_REQUIRE_VIRTUALENV=true
 
+export NVM_DIR="$HOME/.nvm"
+[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
+[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion