X-Git-Url: https://git.donarmstrong.com/?p=home-base.git;a=blobdiff_plain;f=.bashrc;h=06c0ab08c5248526ce70cc4b692b2ef1956eb1c5;hp=8622e18c02ab267a002454a80acd150796a8b1cb;hb=e1af3e11ad537b134a94f3b5d6f017f91611cc3b;hpb=0aaf0b641a0710930975dde67263a6e8b2aafe84 diff --git a/.bashrc b/.bashrc index 8622e18..06c0ab0 100644 --- a/.bashrc +++ b/.bashrc @@ -20,19 +20,69 @@ if [ "$PS1" ]; then fi; # bts debian options + if [ -e bin/faf ]; then + complete -F _command faf + fi; + export DEBEMAIL="don@debian.org" # enable color support of ls and also add handy aliases eval `dircolors -b` alias ls='ls --color=auto' - alias gr='gimp-remote-2.2' + alias gr='gimp-remote' alias emc='sane_editor' + alias svn-b="svn-buildpackage --svn-builder 'pdebuild --buildresult ..' --svn-ignore-new" + # set a fancy prompt #printf '\33]2;%s\007' - PS1="\[\033[0;36m\]\h \t \w$\[\033[0m\] " + + # See if we're in a chroot + if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) + fi + + # we want to set the color based on what machine we're on + # if it's a remote, SSH_CONNECTION will be set + # set variable identifying the chroot you work in (used in the prompt below) + + if [ -n "$SSH_CONNECTION" -o -n "$SSH_CLIENT" ]; then + # figure out what color to use + COLOR=$(hostname|md5sum|perl -ne 'if (/^([a-f\d]{8})/) { + my $num = unpack(q(L),pack(q(H*),$1)); + my @col = map {(qq(0;${_}m),qq(1;${_}m))} 31..37; + my $col = $col[$num % @col]; + if ($col eq q(0;36m)) { + $col = q(1;30m); + } + print $col; + }') + PS1="${debian_chroot:+($debian_chroot)}\[\033[$COLOR\]\h \[\033[0;36m\]\t \w$\[\033[0m\] " + unset COLOR + else + PS1="${debian_chroot:+($debian_chroot)}\[\033[0;36m\]\h \t \w$\[\033[0m\] " + fi; # \[\033[1;36m\][\w]\n\[\033[0;36m\][\h|\t]$ \[\033[0m\] + # make sure the term we're using exists in the termcap + TOEOPT='-a' + if ! toe $TOEOPT >/dev/null 2>&1; then + TOEOPT='' + fi; + if ! toe $TOEOPT|grep -q "^$TERM "; then + # if it doesn't, try to switch + case $TERM in + rxvt*) + TERM="rxvt" + ;; + xterm*) + TERM="xterm" + ;; + *) + ;; + esac + export TERM; + fi; # If this is an xterm set the title to user@host:dir case $TERM in screen|xterm*) @@ -75,7 +125,13 @@ if [ "$PS1" ]; then LANG=C fi; export LANG + + # If we're running on liszt, include /var/list/.bin in the path + if [ "$(hostname)" == "liszt" ] && [ -d /var/list/.bin ]; then + PATH="/var/list/.bin:$PATH" + fi; export PATH="~/bin:$PATH" + if [ ! -e ~/tmp ]; then mkdir ~/tmp; fi; @@ -90,7 +146,12 @@ if [ "$PS1" ]; then cd () { - builtin cd "$@" && [ -r .todo ] && devtodo ${TODO_OPTIONS} + # use pushd instead of cd + if [ -z "$1" ] || [ "$1" == "-" ]; then + builtin cd "$@" && [ -r .todo ] && devtodo ${TODO_OPTIONS}; + else + builtin pushd "$@" >/dev/null && [ -r .todo ] && devtodo ${TODO_OPTIONS}; + fi; } pushd ()