X-Git-Url: https://code.kerkeslager.com/?p=dotfiles;a=blobdiff_plain;f=.bashrc;h=f7bcae44ef0343583abde11e143aa7877de01f1c;hp=80aa76eff429abdc0fb6b162f666b9a30dd89ffd;hb=f8e297f33588e48ff2e58de9ddaa6299616405df;hpb=1d94c70ba8bbccb35fc57014ffc6c7f802c9572a diff --git a/.bashrc b/.bashrc index 80aa76e..f7bcae4 100644 --- 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