]> git.donarmstrong.com Git - home-base.git/blobdiff - .bashrc
add .sarc
[home-base.git] / .bashrc
diff --git a/.bashrc b/.bashrc
index 63ffd49d3873befe7de5566bc0b263382e604411..b0dbc2c3d61054025b37f77c3d736a295a7ee386 100644 (file)
--- a/.bashrc
+++ b/.bashrc
@@ -25,18 +25,69 @@ if [ "$PS1" ]; then
     # 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
-    PS1="\[\033[0;36m\]\h \t \w$\[\033[0m\] "
+    #printf '\33]2;%s\007'
+    
+    # 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" ]; 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*)
             PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
             ;;
+       rxvt*)
+            PROMPT_COMMAND='echo -ne "\033]2;${USER}@${HOSTNAME}: ${PWD}\007"'
+            ;;
+
        *)
             ;;
     esac
@@ -49,12 +100,17 @@ if [ "$PS1" ]; then
 
     # set up ssh-agent
     if which ssh-agent >/dev/null && [ -d ~/.ssh ]; then
+#      for 
        if [ -e ~/.ssh/ssh_agent_info ] && \
-           kill -0 "$(awk -F '[=;]' '/^SSH_AGENT_PID/{print $2}' ~/.ssh/ssh_agent_info)"; then
+           [ -n "$(awk -F '[=;]' '/^SSH_AGENT_PID/{print $2}' ~/.ssh/ssh_agent_info)" ] && \
+           kill -0 "$(awk -F '[=;]' '/^SSH_AGENT_PID/{print $2}' ~/.ssh/ssh_agent_info)" >/dev/null 2>&1; then
            . ~/.ssh/ssh_agent_info > /dev/null
+       elif [ -e ~/.ssh/ssh_agent_info_$(hostname) ] && \
+           kill -0 "$(awk -F '[=;]' '/^SSH_AGENT_PID/{print $2}' ~/.ssh/ssh_agent_info_$(hostname))" >/dev/null 2>&1; then
+           . ~/.ssh/ssh_agent_info_$(hostname) > /dev/null
        else
-           ssh-agent -s > ~/.ssh/ssh_agent_info
-           . ~/.ssh/ssh_agent_info > /dev/null
+           ssh-agent -s > ~/.ssh/ssh_agent_info_$(hostname)
+           . ~/.ssh/ssh_agent_info_$(hostname) > /dev/null
        fi;
     fi;