| author | Adam Gomaa <adam@gomaa.us> |
| Sun Dec 18 13:13:02 2011 -0500 | |
| changeset 521 | 67f37d330ad0 |
| parent 315 | 2713a9b2fc0a |
| permissions | -rw-r--r-- |
| gak9422e@0 | 1 |
# ~/.bashrc: executed by bash(1) for non-login shells. |
| gak9422e@0 | 2 |
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) |
| gak9422e@0 | 3 |
# for examples |
| adam@81 | 4 |
umask 022 |
| gak9422e@0 | 5 |
|
| code@313 | 6 |
export DOTROOT=$HOME/var/srv/hg.gomaa.us/dotfiles |
| code@155 | 7 |
|
| code@275 | 8 |
add_to_pythonpath() |
| code@275 | 9 |
{
|
| code@299 | 10 |
if [ ! -d $1 ]; then |
| code@299 | 11 |
return |
| code@299 | 12 |
fi |
| code@275 | 13 |
if ! echo $PYTHONPATH | /bin/egrep -q "(^|:)$1($|:)" ; then |
| code@275 | 14 |
if [ "$2" = "after" ] ; then |
| code@275 | 15 |
PYTHONPATH=$PYTHONPATH:$1 |
| code@275 | 16 |
else |
| code@276 | 17 |
PYTHONPATH=$1:$PYTHONPATH |
| code@275 | 18 |
fi |
| code@275 | 19 |
fi |
| code@275 | 20 |
} |
| code@275 | 21 |
add_to_path() |
| code@275 | 22 |
{
|
| code@299 | 23 |
if [ ! -d $1 ]; then |
| code@299 | 24 |
return |
| code@299 | 25 |
fi |
| code@277 | 26 |
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then |
| code@275 | 27 |
if [ "$2" = "after" ] ; then |
| code@277 | 28 |
PATH=$PATH:$1 |
| code@275 | 29 |
else |
| code@277 | 30 |
PATH=$1:$PATH |
| code@275 | 31 |
fi |
| code@275 | 32 |
fi |
| code@275 | 33 |
} |
| code@287 | 34 |
PYTHON_VERSION=`python -V 2>&1 | awk '{print $2}' | awk -F . '{print $1"."$2}'`
|
| code@277 | 35 |
export PYTHONPATH |
| code@277 | 36 |
export PATH |
| code@299 | 37 |
add_to_pythonpath ~/var/lib/python$PYTHON_VERSION/site-packages |
| code@287 | 38 |
add_to_pythonpath ~/.local/lib/python$PYTHON_VERSION/site-packages |
| code@275 | 39 |
add_to_pythonpath ~/.local/lib |
| code@275 | 40 |
add_to_pythonpath $DOTROOT/python |
| code@275 | 41 |
add_to_path /usr/local/sbin |
| code@275 | 42 |
add_to_path /usr/sbin |
| code@275 | 43 |
add_to_path /sbin |
| code@275 | 44 |
add_to_path ~/.bin |
| code@275 | 45 |
add_to_path ~/.local/bin |
| code@299 | 46 |
add_to_path ~/var/bin |
| code@275 | 47 |
add_to_path $DOTROOT/bin |
| code@275 | 48 |
add_to_path ~/.ec2/bin |
| code@275 | 49 |
add_to_path /usr/local/bin |
| code@275 | 50 |
add_to_path /usr/bin |
| code@275 | 51 |
add_to_path /bin |
| code@275 | 52 |
add_to_path /usr/games |
| code@299 | 53 |
export TEXINPUTS=$TEXINPUTS:~/.lib/tex:~/share/tex:.:~/.lib/tex:~/share/tex:.:~/.lib/tex:~/share/tex:.:~/.lib/tex:~/share/tex |
| code@147 | 54 |
export PYTHONSTARTUP=~/.pythonrc.py |
| code@68 | 55 |
# Syntax-highlighting less. |
| code@68 | 56 |
LESS='-R'; export LESS |
| code@224 | 57 |
export LESSOPEN="| lesspipe %s" |
| code@68 | 58 |
|
| code@324 | 59 |
export WORKON_HOME=$HOME/var/environments |
| code@288 | 60 |
|
| code@313 | 61 |
fuzzyfind() |
| code@193 | 62 |
{
|
| code@313 | 63 |
local base=$1 |
| code@313 | 64 |
local fname=$2 |
| code@313 | 65 |
local path=$base/$fname |
| code@313 | 66 |
|
| code@313 | 67 |
if [ -d $path ] |
| code@235 | 68 |
then |
| code@313 | 69 |
export FUZZYFIND_PATH=$path |
| code@313 | 70 |
return 0 |
| code@235 | 71 |
else |
| code@313 | 72 |
path=$base/*$2* |
| code@313 | 73 |
# This is probably me revealing my lack of bash-fu. |
| code@313 | 74 |
if [ -d $path ] |
| code@313 | 75 |
then |
| code@313 | 76 |
export FUZZYFIND_PATH=$path |
| code@313 | 77 |
return 0 |
| code@313 | 78 |
else |
| code@313 | 79 |
return 1 |
| code@313 | 80 |
fi |
| code@235 | 81 |
fi |
| code@193 | 82 |
} |
| code@235 | 83 |
|
| code@315 | 84 |
fuzzyfind-frontend() |
| code@313 | 85 |
{
|
| code@313 | 86 |
fuzzyfind $1 $2 |
| code@313 | 87 |
if [ "$?" -eq "0" ]; then |
| code@313 | 88 |
if [ "$TERM" = "screen" ]; then |
| code@313 | 89 |
# Set the title to whatever project I'm working on, if in |
| code@313 | 90 |
# screen. |
| code@313 | 91 |
screen -X title $2 |
| code@313 | 92 |
fi |
| code@313 | 93 |
local new_path=$FUZZYFIND_PATH |
| code@313 | 94 |
unset FUZZYFIND_PATH |
| code@313 | 95 |
cd $new_path |
| code@313 | 96 |
else |
| code@313 | 97 |
echo "Unable to find $1/$2 or similar" |
| code@313 | 98 |
fi |
| code@313 | 99 |
} |
| code@235 | 100 |
|
| code@182 | 101 |
src() |
| code@182 | 102 |
{
|
| code@315 | 103 |
fuzzyfind-frontend ~/var/srv $1 |
| code@313 | 104 |
} |
| code@243 | 105 |
|
| code@182 | 106 |
greppy() |
| code@182 | 107 |
{
|
| code@161 | 108 |
grep --color="auto" -Ri --include="*.py" $1 ./ |
| code@104 | 109 |
} |
| code@301 | 110 |
|
| code@301 | 111 |
|
| code@301 | 112 |
# Seems like loop time. |
| code@68 | 113 |
|
| code@68 | 114 |
if [ -f ~/.bash_local ]; then |
| code@68 | 115 |
. ~/.bash_local |
| code@68 | 116 |
fi |
| code@68 | 117 |
|
| code@301 | 118 |
if [ -f ~/.bash_aliases ]; then |
| code@301 | 119 |
. ~/.bash_aliases |
| code@301 | 120 |
fi |
| code@301 | 121 |
|
| code@301 | 122 |
if [ -f $DOTROOT/.bash.d/mercurial_completion ]; then |
| code@301 | 123 |
. $DOTROOT/.bash.d/mercurial_completion |
| code@301 | 124 |
fi |
| code@301 | 125 |
|
| code@301 | 126 |
if [ -f $DOTROOT/.bash.d/virtualenvwrapper_bashrc ]; then |
| code@301 | 127 |
. $DOTROOT/.bash.d/virtualenvwrapper_bashrc |
| code@301 | 128 |
fi |
| code@301 | 129 |
|
| code@301 | 130 |
|
| code@301 | 131 |
|
| gak9422e@0 | 132 |
# If not running interactively, don't do any more. |
| gak9422e@0 | 133 |
[ -z "$PS1" ] && return |
| gak9422e@0 | 134 |
|
| gak9422e@0 | 135 |
# don't put duplicate lines in the history, and ignore same sucessive entries. |
| gak9422e@0 | 136 |
export HISTCONTROL=ignoreboth |
| gak9422e@0 | 137 |
export EDITOR=emacsclient |
| gak9422e@0 | 138 |
|
| gak9422e@0 | 139 |
# check the window size after each command and, if necessary, |
| gak9422e@0 | 140 |
# update the values of LINES and COLUMNS. |
| gak9422e@0 | 141 |
shopt -s checkwinsize |
| code@31 | 142 |
shopt -s histappend |
| gak9422e@0 | 143 |
|
| gak9422e@0 | 144 |
# enable color support of ls and also add handy aliases |
| gak9422e@0 | 145 |
if [ "$TERM" != "dumb" ]; then |
| gak9422e@0 | 146 |
eval "`dircolors -b`" |
| gak9422e@0 | 147 |
alias ls='ls --color=auto' |
| gak9422e@0 | 148 |
#alias dir='ls --color=auto --format=vertical' |
| gak9422e@0 | 149 |
#alias vdir='ls --color=auto --format=long' |
| gak9422e@0 | 150 |
fi |
| gak9422e@0 | 151 |
|
| gak9422e@0 | 152 |
|
| code@115 | 153 |
_prompt_pwd() |
| code@80 | 154 |
{
|
| code@80 | 155 |
case $PWD in |
| code@80 | 156 |
$HOME) |
| code@80 | 157 |
echo -n '~' |
| code@80 | 158 |
;; |
| code@80 | 159 |
*) |
| code@87 | 160 |
local last=${PWD/#*\//}
|
| code@80 | 161 |
echo -n $PWD | sed -e "s|^$HOME|~|" \ |
| code@86 | 162 |
-e 's-/\([^/]\{2\}\)\([^/]*\)-/\1-g' \
|
| code@87 | 163 |
-e "s|\$|${last:2}|"
|
| code@80 | 164 |
;; |
| code@80 | 165 |
esac |
| gak9422e@0 | 166 |
} |
| gak9422e@0 | 167 |
|
| code@68 | 168 |
function cd_and_ls {
|
| code@181 | 169 |
cd $1 && ls |
| code@68 | 170 |
} |
| code@68 | 171 |
function cd_and_ll {
|
| code@181 | 172 |
cd $1 && ll |
| code@68 | 173 |
} |
| code@68 | 174 |
alias c=cd_and_ls |
| code@68 | 175 |
alias cl=cd_and_ll |
| gak9422e@0 | 176 |
|
| code@181 | 177 |
reload() |
| code@181 | 178 |
{
|
| code@181 | 179 |
source ~/.bashrc |
| code@181 | 180 |
} |
| code@181 | 181 |
|
| code@271 | 182 |
GRAY=`tput setaf 0` |
| code@80 | 183 |
RED=`tput setaf 1` |
| code@80 | 184 |
GREEN=`tput setaf 2` |
| code@80 | 185 |
YELLOW=`tput setaf 3` |
| code@80 | 186 |
BLUE=`tput setaf 4` |
| code@80 | 187 |
MAGENTA=`tput setaf 5` |
| code@80 | 188 |
CYAN=`tput setaf 6` |
| code@80 | 189 |
WHITE=`tput setaf 7` |
| code@80 | 190 |
BOLD=`tput bold` |
| code@80 | 191 |
RESET=`tput sgr0` |
| code@271 | 192 |
GREEN_PS1='\[$GREEN\]\[$BOLD\]$(_ident)\[$RESET\]\[$MAGENTA\]$(_prompt_pwd)/\[$GREEN\]\$\[$RESET\] ' |
| code@274 | 193 |
YELLOW_PS1='\[$GREEN\]\[$BOLD\]$(_ident)\[$RESET\]\[$MAGENTA\]$(_prompt_pwd)/\[$YELLOW\]\$\[$RESET\] ' |
| code@271 | 194 |
PS1=GREEN_PS1 |
| code@271 | 195 |
|
| code@274 | 196 |
_inside_screen() |
| code@274 | 197 |
{
|
| code@274 | 198 |
# I hate bash. |
| code@274 | 199 |
if [ "$STY" = "" ]; then |
| code@274 | 200 |
echo "false" |
| code@274 | 201 |
else |
| code@274 | 202 |
echo "true" |
| code@274 | 203 |
fi |
| code@274 | 204 |
} |
| code@274 | 205 |
|
| code@301 | 206 |
if [ `_inside_screen` = "true" ]; then |
| code@301 | 207 |
PS1=$YELLOW_PS1 |
| code@301 | 208 |
else |
| code@301 | 209 |
PS1=$GREEN_PS1 |
| code@301 | 210 |
fi |
| code@264 | 211 |
|
| code@264 | 212 |
_ident() |
| code@264 | 213 |
{
|
| code@274 | 214 |
if [ `_inside_screen` = "true" ]; then |
| code@264 | 215 |
echo "$(hostname)($STY)" |
| code@264 | 216 |
else |
| code@264 | 217 |
echo $(hostname) |
| code@264 | 218 |
fi |
| code@264 | 219 |
} |
| code@264 | 220 |
|
| code@275 | 221 |
_screen_name() |
| code@275 | 222 |
{
|
| code@275 | 223 |
expr "$STY" : '[0-9]*\.\([a-z\.]*\)' |
| code@275 | 224 |
} |
| code@275 | 225 |
mkdir -p ~/.bash_history.d |
| code@275 | 226 |
|
| code@275 | 227 |
if [ `_inside_screen` = "true" ]; then |
| code@261 | 228 |
# If I'm inside screen, set the caption to show STY so I know |
| code@261 | 229 |
# which screen. |
| code@261 | 230 |
screen -X caption always "$STY %= %-w%L>%{= BW}%n*%t%{-}%52<%+w %L="
|
| code@288 | 231 |
export HISTFILE=~/.bash_history.d/`_screen_name`.$WINDOW |
| code@261 | 232 |
fi |
| code@261 | 233 |
|
| code@213 | 234 |
[[ -n "$(command -v stty)" ]] && stty -ixoff -ixon |