chiark / gitweb /
5f9742a0eb1ea76b407ef24d38da5618f054ad27
[profile] / dot / bashrc
1 ### -*-bash-*-
2 ###
3 ### Bash session things.
4
5 __mdw_shell=bash
6
7 ## Only do this if we haven't done it before.  (Note that this guard isn't
8 ## exported, so subshells will need to make their own arrangements.)
9 case ${__mdw_bashrc+t} in
10   t) ;;
11   *) __mdw_bashrc=t
12
13 ## Fetch the common configuration.
14 . "$HOME/.shell-rc"
15
16 ## If we've not run the main profile yet, we should do that first.  It sets
17 ## up things we rely on.  Also, if there's a system script, we should run
18 ## that too.
19 case ${__mdw_profile+t} in t) ;; *) . "$HOME/.profile" ;; esac
20 __mdw_source_if_exists /etc/bashrc
21
22 ## Completion.
23 __mdw_source_if_exists /etc/bash_completion "$HOME/.bash_completion"
24
25 ###--------------------------------------------------------------------------
26 ### Prompt hacking.
27
28 __mdw_set_prompt_hacks () {
29   case "$TERM" in
30     linux*|screen*|xterm*|vt100*|eterm*)
31       case "$(tput bold)" in
32         "") bold="\[$(tput md)\]" unbold="\[$(tput me)\]" ;;
33         *) bold="\[$(tput bold)\]" unbold="\[$(tput sgr0)\]" ;;
34       esac
35       gitcolour="\[$(tput setaf 6)\]"
36       rccolour="\[$(tput setaf 1)\]"
37       uncolour="\[$(tput op)\]"
38       nl="\[\r\]"
39       ;;
40   esac
41   host='\h' dir=' \w'
42 }
43
44 __mdw_before_cmd_hack () {
45   set -- $(history 1); shift
46   __mdw_preexec "$*"
47 }
48
49 ## Only bother if the shell is interactive.
50 if [ -t 0 ]; then
51   PROMPT_DIRTRIM=5
52   __mdw_source_if_exists /usr/lib/git-core/git-sh-prompt
53   __mdw_set_prompt_pieces
54   PROMPT_COMMAND=__mdw_precmd
55   PS0="\$(__mdw_before_cmd_hack)"
56 fi
57
58 ###--------------------------------------------------------------------------
59 ### Other shell tweaking.
60
61 ## Random shell tweaks.
62 notify=1
63 set -b
64 shopt -u cdable_vars
65 shopt -s cdspell
66 shopt -s checkhash
67 shopt -s checkwinsize
68 shopt -s cmdhist
69 shopt -u dotglob
70 shopt -s expand_aliases
71 shopt -s extglob
72 if (( ${BASH_VERSINFO[0]} >= 4 )); then shopt -s globstar; fi
73 shopt -s gnu_errfmt
74 shopt -s histappend
75 set -o histexpand
76 shopt -s histreedit
77 shopt -u histverify
78 shopt -s hostcomplete
79 shopt -s huponexit
80 shopt -s interactive_comments
81 shopt -s lithist
82 shopt -u mailwarn
83 shopt -u nocaseglob
84 shopt -u nullglob
85 shopt -s promptvars
86 shopt -u shift_verbose
87 shopt -s sourcepath
88 HISTCONTROL=ignorespace:erasedups
89
90 ###--------------------------------------------------------------------------
91 ### Finishing touches.
92
93 ## Run any local hooks.
94 __mdw_source_if_exists "$HOME/.bashrc-local"
95
96 ###----- That's all, folks --------------------------------------------------
97
98 esac