-#
-# $Id: .bashrc,v 1.6 1996/12/08 20:33:42 mdw Exp $
+# -*- mode: sh; coding: utf-8 -*-
#
# Bash session things
#
if [ -t 0 ]; then
- if [ "$TERM" = "dumb" ]; then
- if (( EUID == 0 )); then PS1="# "; else PS1="\$ "; fi
- PS2="> "
- PS4="+ "
+ case "$TERM" in
+ linux*|screen*|xterm*|vt100*|eterm*)
+ bold="\[$(tput bold)\]" unbold="\[$(tput sgr0)\]" nl="\[\r\]" ;;
+ *)
+ bold='' unbold='' nl='' ;;
+ esac
+
+ if (( EUID == 0 )); then
+ left=`echo « | iconv -f utf8 -t //translit`
+ right=`echo » | iconv -f utf8 -t //translit`
else
-
- case "$TERM" in
- linux*|screen*|xterm*|vt100*)
- bold='\[\e[1m\]' unbold='\[\e[m\]' nl='\[\r\]' ;;
+ case $USER in
+ mdw|mwooding)
+ u="" left="[" right="]"
+ ;;
*)
- bold='' unbold='' nl='' ;;
+ u="\\u@" left="{" right="}"
+ ;;
esac
-
- if (( EUID == 0 )); then
- left="«" right="»"
- elif [ "$__mdw_tty" = "`tty`" ]; then
+ if [ "$__mdw_tty" = "`tty`" ]; then
left="<" right=">"
else
- left="[" right="]"
export __mdw_tty="`tty`"
fi
+ fi
- if [ -z "$SSH_CLIENT" ] &&
- [ "$__mdw_sechost" != "`hostname`" ]
- then
- sec_l='(' sec_r=')'
- fi
-
- PS1="$nl$bold$left$sec_l\\h$sec_r \\w$right$unbold"
- PS2="$PS1 $bold>$unbold "
+ if [ -z "$SSH_CLIENT" ] &&
+ [ "$__mdw_sechost" != "`hostname`" ]
+ then
+ sec_l='(' sec_r=')'
fi
+ PS1="$nl$bold$left$sec_l$u\\h$sec_r \\w$right$unbold"
+ PS2="$PS1 $bold>$unbold "
+
fi # is stdin a tty?
+# --- Pagers are less useful within Emacs ---
+
+case "$INSIDE_EMACS" in
+ 22.*,comint) export PAGER=cat ;;
+esac
+
# --- Little preferences ---
notify=1
shopt -s sourcepath
# --- Set the CDPATH ---
-#
+#
# CDPATH=~/src:/usr/src:/usr/lib:/usr/share
# dots=..
# i=6
# --- Some colour `ls' support ---
[ "${TMPDIR+yes}" ] || eval `tmpdir -b`
-if [ -x /usr/bin/dircolors -o -x /usr/local/bin/dircolors ] &&
- [ "$TERM" != "dumb" ]; then
+if [ -x /usr/bin/dircolors -o -x /usr/local/bin/dircolors ]; then
eval `dircolors -b ~/.dircolors`
else
unset LS_COLORS
alias rootly=$__MDW_ROOTLY
alias r=rootly
alias re="rootly $EDITOR"
-alias pstree="pstree -Ghl"
+alias pstree="pstree -hl"
alias cdtmp='cd ${TMPDIR-/tmp}'
alias pushtmp='pushd ${TMPDIR-/tmp}'
alias e="$EDITOR"
alias svn="svnwrap svn"
alias @="ssh"
+[ -r /etc/bash_completion ] && . /etc/bash_completion
+[ -r $HOME/.bash_completion ] && . $HOME/.bash_completion
+
# --- Make `xt' start an xterm, maybe logging into a remote host ---
xt () {
esac
}
+# --- Turning on and off path hacks ---
+
+path-add () {
+ local pathvar export dir val
+ case $# in
+ 1) pathvar=PATH dir=$1 export="export PATH";;
+ 2) pathvar=$1 dir=$2 export=:;;
+ *) echo >&2 "Usage: $0 [VAR] DIR";;
+ esac
+ eval "val=\$$pathvar"
+ case ":$val:" in
+ *:"$dir":*) ;;
+ *) val=$dir:$val ;;
+ esac
+ eval "$pathvar=\$val"
+ $export
+}
+
+path-remove () {
+ local pathvar export dir val
+ case $# in
+ 1) pathvar=PATH dir=$1 export="export PATH";;
+ 2) pathvar=$1 dir=$2 export=:;;
+ *) echo >&2 "Usage: $0 [VAR] DIR";;
+ esac
+ eval "val=\$$pathvar"
+ case ":$val:" in
+ :"$dir":) val= ;;
+ :"$dir":*) val=${val#$dir:} ;;
+ *:"$dir":) val=${val%:$dir} ;;
+ *:"$dir":*) val=${val/:$dir:/:} ;;
+ esac
+ eval "$pathvar=\$val"
+ $export
+}
+
+pathhack () {
+ if [ $# -eq 0 ]; then
+ local IFS=:
+ for e in $PATH; do
+ case "$e" in
+ "$HOME/bin/hacks/"*)
+ echo ${e#$HOME/bin/hacks/}
+ ;;
+ esac
+ done
+ return
+ fi
+ local force=nil
+ local path=$PATH
+ while [ $# -gt 0 ]; do
+ arg=$1
+ case "$arg" in
+ -f | --force)
+ force=t
+ shift
+ continue
+ ;;
+ --)
+ shift
+ break
+ ;;
+ [-+]*)
+ ;;
+ *)
+ break
+ ;;
+ esac
+ hack=${arg#[+-]}
+ dir=$HOME/bin/hacks/$hack
+ [ -d "$dir" ] || {
+ echo "$0: path hack $hack not found"
+ return 1
+ }
+ case "$arg,$force,:$PATH:" in
+ -*,*,*:"$dir":*)
+ path-remove path "$dir"
+ ;;
+ +*,t,*:"$dir":*)
+ path-remove path "$dir"
+ path-add path "$dir"
+ ;;
+ +*,nil,*:"$dir":*)
+ ;;
+ +*,*)
+ path-add path "$dir"
+ ;;
+ esac
+ shift
+ done
+ if [ $# -eq 0 ]; then
+ PATH=$path
+ export PATH
+ else
+ PATH=$path "$@"
+ fi
+}
+
# --- Fix `man' under Slowaris ---
case "$MACHTYPE" in
set -o noclobber
fi
+[ -f "$HOME/.bashrc-local" ] && . "$HOME/.bashrc-local"
+
fi