-### -*-sh-*-
+### -*-bash-*-
###
### Bash session things
[ -z "$__mdw_profile" -a -r $HOME/.bash_profile ] && . $HOME/.bash_profile
[ -r /etc/bashrc ] && . /etc/bashrc
+## Completion.
+[ -r /etc/bash_completion ] && . /etc/bash_completion
+[ -r $HOME/.bash_completion ] && . $HOME/.bash_completion
+
## Set the temporary directory again. (If we've switched users, we'll want a
## different temporary directory.)
[ "${TMPDIR+yes}" ] || eval `tmpdir -b`
if [ -t 0 ]; then
## Fancy highlighting in some terminals.
+ marker=${STY+'\[\ek\e\\\]'}
case "$TERM" in
linux*|screen*|xterm*|vt100*|eterm*)
- bold="\[$(tput bold)\]" unbold="\[$(tput sgr0)\]" nl="\[\r\]" ;;
+ case "$(tput bold)" in
+ "") bold="\[$(tput md)\]" unbold="\[$(tput me)\]" ;;
+ *) bold="\[$(tput bold)\]" unbold="\[$(tput sgr0)\]" ;;
+ esac
+ gitcolour="\[$(tput setaf 6)\]"
+ rccolour="\[$(tput setaf 1)\]"
+ uncolour="\[$(tput op)\]"
+ nl="\[\r\]"
+ ;;
*)
- bold='' unbold='' nl='' ;;
+ bold='' unbold='' nl='' gitcolour='' rccolour='' uncolour='';;
esac
## Choose the right delimiters. Highlight root prompts specially;
## highlight when I'm running as some other user. Highlight when this
## isn't the outermost shell on the terminal.
if (( EUID == 0 )); then
- left=`echo « | iconv -f utf8 -t //translit`
- right=`echo » | iconv -f utf8 -t //translit`
+ left=`echo « | iconv -f UTF-8 -t //translit`
+ right=`echo » | iconv -f UTF-8 -t //translit`
else
case $USER in
- mdw|mwooding) u="" left="[" right="]" ;;
+ mdw|mwooding|nemo) u="" left="[" right="]" ;;
*) u="\\u@" left="{" right="}" ;;
esac
if [ "$__mdw_tty" = "`tty`" ]; then
fi
## Build the prompt string.
- PS1="$nl$bold$left$sec_l$u\\h$sec_r \\w$right$unbold"
+ if type __git_ps1 >/dev/null 2>&1; then
+ git="$unbold$gitcolour\$(rc=\$?;__git_ps1;exit \$rc)$uncolour$bold"
+ else
+ git=""
+ fi
+ rc="$unbold$rccolour\$(rc=\$?;case \$rc in 0);;"
+ rc="$rc*)echo -n \" rc=\$rc\";;esac;exit \$rc)$uncolour$bold"
+ PS1="$nl$bold$left$sec_l$u\\h$sec_r \\w$git$rc$marker$right$unbold"
PS2="$PS1 $bold>$unbold "
-
+ unset nl bold unbold left right sec_l sec_r marker
+ unset gitcolour rccolour uncolour git rc
fi
###--------------------------------------------------------------------------
shopt -u dotglob
shopt -s expand_aliases
shopt -s extglob
-shopt -s globstar
+if (( ${BASH_VERSINFO[0]} >= 4 )); then shopt -s globstar; fi
shopt -s gnu_errfmt
shopt -s histappend
shopt -s histreedit
alias which="command -v"
alias rc="rc -l"
alias ssync="rsync -e ssh"
-alias rootly=$__MDW_ROOTLY
+rootly () {
+ case $# in 0) set -- "${SHELL-/bin/sh}" ;; esac
+ $__MDW_ROOTLY "$@"
+}
alias r=rootly
alias re="rootly $EDITOR"
alias pstree="pstree -hl"
alias svn="svnwrap svn"
alias @="ssh"
-## Completion.
-[ -r /etc/bash_completion ] && . /etc/bash_completion
-[ -r $HOME/.bash_completion ] && . $HOME/.bash_completion
-
###--------------------------------------------------------------------------
### Colour output.
unset LS_COLORS
fi
-ls () {
+unalias ls 2>/dev/null || :; function ls () {
if [ -t 1 ]; then
command ls $LS_OPTIONS ${LS_COLORS+--color=auto} "$@"
else
## Turn off pagers inside Emacs shell buffers.
case "$INSIDE_EMACS" in
- 22.*,comint) export PAGER=cat ;;
+ 2[2-9].*,comint | [3-9][0-9].*,comint) export PAGER=cat ;;
esac
###--------------------------------------------------------------------------
fi
###----- That's all, folks --------------------------------------------------
+
+: