X-Git-Url: https://code.kerkeslager.com/?a=blobdiff_plain;f=.bashrc;h=0f28a57714def8eb78a88281000df6f4b310ac3d;hb=34ea85db2a058b24bc164ecf9d86fbca86afa092;hp=d33a38db19754697b2ebe38f004171e0dfa97adf;hpb=bfe295810bb6e3d2a048bf8f27575bc84e9863a3;p=dotfiles diff --git a/.bashrc b/.bashrc index d33a38d..0f28a57 100644 --- a/.bashrc +++ b/.bashrc @@ -1,7 +1,10 @@ # ~/.bashrc: executed by bash(1) for non-login shells. # If not running interactively, don't do anything -[ -z "$PS1" ] && return +case $- in + *i*) ;; + *) return;; +esac # don't put duplicate lines in the history. See bash(1) for more options # don't overwrite GNU Midnight Commander's setting of `ignorespace'. @@ -18,12 +21,21 @@ shopt -s histappend # update the values of LINES and COLUMNS. shopt -s checkwinsize +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +shopt -s globstar + # make less more friendly for non-text input files, see lesspipe(1) [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" # set the prompt PS1='\w\$ ' +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then eval "`dircolors -b`" @@ -55,6 +67,13 @@ 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. @@ -79,3 +98,37 @@ 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 vi keybindings +set -o vi + +# Call on_prompt() every time the command prompt executes +PROMPT_COMMAND=on_prompt +