Mercurial > ec-dotfiles
annotate rc/bash @ 269:cd48b7a5cddd
As it turns out, Solaris' grep isn't POSIX.
| author | Edho Arief <edho@myconan.net> | 
|---|---|
| date | Thu, 24 Nov 2011 15:10:24 +0700 | 
| parents | feab84a8efdb | 
| children | 0e41725e7d38 | 
| rev | line source | 
|---|---|
| 43 | 1 #!/usr/bin/env bash | 
| 2 | |
| 
242
 
ebfa844d2ef8
[bash] Also ensures interactive terminal.
 
Edho Arief <edho@myconan.net> 
parents: 
238 
diff
changeset
 | 
3 case "${-}" in | 
| 
 
ebfa844d2ef8
[bash] Also ensures interactive terminal.
 
Edho Arief <edho@myconan.net> 
parents: 
238 
diff
changeset
 | 
4 *i*) ;; | 
| 
 
ebfa844d2ef8
[bash] Also ensures interactive terminal.
 
Edho Arief <edho@myconan.net> 
parents: 
238 
diff
changeset
 | 
5 *) return;; | 
| 
 
ebfa844d2ef8
[bash] Also ensures interactive terminal.
 
Edho Arief <edho@myconan.net> 
parents: 
238 
diff
changeset
 | 
6 esac | 
| 
 
ebfa844d2ef8
[bash] Also ensures interactive terminal.
 
Edho Arief <edho@myconan.net> 
parents: 
238 
diff
changeset
 | 
7 | 
| 
117
 
548cf46e9cb4
Ensures no double loading using C-style variable test.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
112 
diff
changeset
 | 
8 if [ "${ECOS_BASH_LOADED}" != "yes" ]; then | 
| 
122
 
eacc854eae67
Export should be used since it inherited to subshell (eg. tmux). Also hasten exit instead of fi on the bottom of file.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
117 
diff
changeset
 | 
9 ECOS_BASH_LOADED="yes" | 
| 
 
eacc854eae67
Export should be used since it inherited to subshell (eg. tmux). Also hasten exit instead of fi on the bottom of file.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
117 
diff
changeset
 | 
10 else | 
| 
 
eacc854eae67
Export should be used since it inherited to subshell (eg. tmux). Also hasten exit instead of fi on the bottom of file.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
117 
diff
changeset
 | 
11 return | 
| 
 
eacc854eae67
Export should be used since it inherited to subshell (eg. tmux). Also hasten exit instead of fi on the bottom of file.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
117 
diff
changeset
 | 
12 fi | 
| 
117
 
548cf46e9cb4
Ensures no double loading using C-style variable test.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
112 
diff
changeset
 | 
13 | 
| 71 | 14 [ -f "${HOME}/.ecos_bash.before" ] && . "${HOME}/.ecos_bash.before" | 
| 
49
 
b924652e169d
[bash] Various tweaks: prompt, unset for check variables, etc
 
Edho Prima Arief <me@myconan.net> 
parents: 
48 
diff
changeset
 | 
15 | 
| 67 | 16 _org_path="${PATH}" | 
| 62 | 17 export PATH="${HOME}/.ecos_bin:${HOME}/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" | 
| 
44
 
1f1af28f36e9
[bash] Bashrc, c-style ifdef.
 
Edho Prima Arief <me@myconan.net> 
parents: 
43 
diff
changeset
 | 
18 | 
| 
111
 
fd8dbd4bb758
ls color for freebsd, history control.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
106 
diff
changeset
 | 
19 shopt -s histappend | 
| 
 
fd8dbd4bb758
ls color for freebsd, history control.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
106 
diff
changeset
 | 
20 PROMPT_COMMAND='history -a' | 
| 
 
fd8dbd4bb758
ls color for freebsd, history control.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
106 
diff
changeset
 | 
21 export HISTFILESIZE=10000 | 
| 
 
fd8dbd4bb758
ls color for freebsd, history control.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
106 
diff
changeset
 | 
22 export HISTCONTROL=ignoredups | 
| 
 
fd8dbd4bb758
ls color for freebsd, history control.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
106 
diff
changeset
 | 
23 | 
| 
53
 
b9db5d89aae3
[bash] POSIX grep, GNU grep, standardized quote (" unless ' required).
 
Edho Prima Arief <me@myconan.net> 
parents: 
52 
diff
changeset
 | 
24 export PAGER="less -Rins" | 
| 
49
 
b924652e169d
[bash] Various tweaks: prompt, unset for check variables, etc
 
Edho Prima Arief <me@myconan.net> 
parents: 
48 
diff
changeset
 | 
25 export EDITOR=vi | 
| 
89
 
29bd7f6ef58a
Explicit LANG declaration.
 
Edho Prima Arief <me@myconan.net> 
parents: 
60 
diff
changeset
 | 
26 export LANG="en_US.UTF-8" | 
| 
267
 
e35a36bb832e
Always export LSCOLORS and CLICOLOR
 
Edho Arief <edho@myconan.net> 
parents: 
266 
diff
changeset
 | 
27 export CLICOLOR= | 
| 
 
e35a36bb832e
Always export LSCOLORS and CLICOLOR
 
Edho Arief <edho@myconan.net> 
parents: 
266 
diff
changeset
 | 
28 export LSCOLORS=ExGxFxdxCxegedabagExEx | 
| 
49
 
b924652e169d
[bash] Various tweaks: prompt, unset for check variables, etc
 
Edho Prima Arief <me@myconan.net> 
parents: 
48 
diff
changeset
 | 
29 | 
| 
53
 
b9db5d89aae3
[bash] POSIX grep, GNU grep, standardized quote (" unless ' required).
 
Edho Prima Arief <me@myconan.net> 
parents: 
52 
diff
changeset
 | 
30 alias less="less -Rins" | 
| 62 | 31 alias ls="ls -F" | 
| 32 alias rm="rm -i" | |
| 
75
 
f993714efa7b
cool alias, bro (rdesktop)
 
Edho Prima Arief <me@myconan.net> 
parents: 
71 
diff
changeset
 | 
33 alias rd="rdesktop -g 1280x600 -K -a 16 -z -P -r sound:off -r clipboard:CLIPBOARD -5" | 
| 
53
 
b9db5d89aae3
[bash] POSIX grep, GNU grep, standardized quote (" unless ' required).
 
Edho Prima Arief <me@myconan.net> 
parents: 
52 
diff
changeset
 | 
34 | 
| 43 | 35 _has_gnu_ls= | 
| 
53
 
b9db5d89aae3
[bash] POSIX grep, GNU grep, standardized quote (" unless ' required).
 
Edho Prima Arief <me@myconan.net> 
parents: 
52 
diff
changeset
 | 
36 _has_gnu_grep= | 
| 
238
 
5dcbf6ab0109
Prioritize gnuls over colorls on OpenBSD. Modified GNU ls alias to allow different executable name.
 
Edho Arief <edho@myconan.net> 
parents: 
141 
diff
changeset
 | 
37 _ls="ls" | 
| 43 | 38 case "$(uname -s)" in | 
| 39 Linux) | |
| 40 _has_gnu_ls=y | |
| 
96
 
26c9dc482051
Merge. Linux obviously has gnu grep.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
75 
diff
changeset
 | 
41 _has_gnu_grep=y | 
| 43 | 42 ;; | 
| 43 SunOS) | |
| 44 [ -x /usr/gnu/bin/ls ] && _has_gnu_ls=y | |
| 
53
 
b9db5d89aae3
[bash] POSIX grep, GNU grep, standardized quote (" unless ' required).
 
Edho Prima Arief <me@myconan.net> 
parents: 
52 
diff
changeset
 | 
45 [ -x /usr/gnu/bin/grep ] && _has_gnu_grep=y | 
| 
253
 
e6de49d70fe7
(Not so) simplified solaris path add.
 
Edho Arief <edho@myconan.net> 
parents: 
252 
diff
changeset
 | 
46 # Higher priority directories | 
| 
 
e6de49d70fe7
(Not so) simplified solaris path add.
 
Edho Arief <edho@myconan.net> 
parents: 
252 
diff
changeset
 | 
47 for i in {/opt/csw,/usr/gnu}/{,s}bin; do | 
| 
 
e6de49d70fe7
(Not so) simplified solaris path add.
 
Edho Arief <edho@myconan.net> 
parents: 
252 
diff
changeset
 | 
48 [ -d "${i}" ] && PATH="${i}:${PATH}" | 
| 
 
e6de49d70fe7
(Not so) simplified solaris path add.
 
Edho Arief <edho@myconan.net> 
parents: 
252 
diff
changeset
 | 
49 done | 
| 
 
e6de49d70fe7
(Not so) simplified solaris path add.
 
Edho Arief <edho@myconan.net> 
parents: 
252 
diff
changeset
 | 
50 for i in /usr/{sfw,xpg4}/bin; do | 
| 
 
e6de49d70fe7
(Not so) simplified solaris path add.
 
Edho Arief <edho@myconan.net> 
parents: 
252 
diff
changeset
 | 
51 [ -d "${i}" ] && PATH="${PATH}:${i}" | 
| 
 
e6de49d70fe7
(Not so) simplified solaris path add.
 
Edho Arief <edho@myconan.net> 
parents: 
252 
diff
changeset
 | 
52 done | 
| 
57
 
ada5b9534765
[bash] Sanitize sunos ping.
 
Edho Prima Arief <me@myconan.net> 
parents: 
56 
diff
changeset
 | 
53 alias ping="ping -s" | 
| 
 
ada5b9534765
[bash] Sanitize sunos ping.
 
Edho Prima Arief <me@myconan.net> 
parents: 
56 
diff
changeset
 | 
54 alias ping6="ping -A inet6" | 
| 265 | 55 # Hello tmux. Perhaps one day we'll have title with dtterm. | 
| 
268
 
feab84a8efdb
Merge. Also more workaround for Solaris tmux.
 
Edho Arief <edho@myconan.net> 
diff
changeset
 | 
56 # But for now we work this around by prepending tmux call with xterm-256color | 
| 
 
feab84a8efdb
Merge. Also more workaround for Solaris tmux.
 
Edho Arief <edho@myconan.net> 
diff
changeset
 | 
57 # which hopefully exists. Otherwise we have to live with no title. | 
| 
 
feab84a8efdb
Merge. Also more workaround for Solaris tmux.
 
Edho Arief <edho@myconan.net> 
diff
changeset
 | 
58 if [ -f /usr/share/lib/terminfo/x/xterm-256color ]; then | 
| 
 
feab84a8efdb
Merge. Also more workaround for Solaris tmux.
 
Edho Arief <edho@myconan.net> 
diff
changeset
 | 
59 alias tmux="TERM=xterm-256color tmux" | 
| 
 
feab84a8efdb
Merge. Also more workaround for Solaris tmux.
 
Edho Arief <edho@myconan.net> 
diff
changeset
 | 
60 else | 
| 
 
feab84a8efdb
Merge. Also more workaround for Solaris tmux.
 
Edho Arief <edho@myconan.net> 
diff
changeset
 | 
61 echo "No xterm-256color, using dtterm. Tmux title won't work." | 
| 
 
feab84a8efdb
Merge. Also more workaround for Solaris tmux.
 
Edho Arief <edho@myconan.net> 
diff
changeset
 | 
62 fi | 
| 
 
feab84a8efdb
Merge. Also more workaround for Solaris tmux.
 
Edho Arief <edho@myconan.net> 
diff
changeset
 | 
63 [ -f /usr/share/lib/terminfo/?/"${TERM}" ] || export TERM=dtterm | 
| 43 | 64 ;; | 
| 62 | 65 OpenBSD) | 
| 255 | 66 PATH="${PATH}:/usr/X11R6/bin" | 
| 
238
 
5dcbf6ab0109
Prioritize gnuls over colorls on OpenBSD. Modified GNU ls alias to allow different executable name.
 
Edho Arief <edho@myconan.net> 
parents: 
141 
diff
changeset
 | 
67 if command -v gls > /dev/null 2>&1; then | 
| 
 
5dcbf6ab0109
Prioritize gnuls over colorls on OpenBSD. Modified GNU ls alias to allow different executable name.
 
Edho Arief <edho@myconan.net> 
parents: 
141 
diff
changeset
 | 
68 _has_gnu_ls=y | 
| 
 
5dcbf6ab0109
Prioritize gnuls over colorls on OpenBSD. Modified GNU ls alias to allow different executable name.
 
Edho Arief <edho@myconan.net> 
parents: 
141 
diff
changeset
 | 
69 _ls="gls" | 
| 
 
5dcbf6ab0109
Prioritize gnuls over colorls on OpenBSD. Modified GNU ls alias to allow different executable name.
 
Edho Arief <edho@myconan.net> 
parents: 
141 
diff
changeset
 | 
70 elif command -v colorls > /dev/null 2>&1; then | 
| 62 | 71 alias ls='colorls -F' | 
| 72 fi | |
| 73 ;; | |
| 249 | 74 NetBSD) | 
| 255 | 75 PATH="${PATH}:/usr/pkg/bin:/usr/pkg/sbin" | 
| 249 | 76 if command -v gls > /dev/null 2>&1; then | 
| 77 _has_gnu_ls=y | |
| 78 _ls="gls" | |
| 79 elif command -v colorls > /dev/null 2>&1; then | |
| 80 alias ls='colorls -F' | |
| 81 fi | |
| 82 ;; | |
| 67 | 83 CYGWIN*) | 
| 84 export PATH="${PATH}:${_org_path}" | |
| 85 ;; | |
| 43 | 86 esac | 
| 87 | |
| 
238
 
5dcbf6ab0109
Prioritize gnuls over colorls on OpenBSD. Modified GNU ls alias to allow different executable name.
 
Edho Arief <edho@myconan.net> 
parents: 
141 
diff
changeset
 | 
88 [ "${_has_gnu_ls}" = y ] && alias ls="${_ls} -F --color=auto" | 
| 62 | 89 [ "${_has_gnu_grep}" = y ] && alias grep="grep --color=auto" | 
| 
53
 
b9db5d89aae3
[bash] POSIX grep, GNU grep, standardized quote (" unless ' required).
 
Edho Prima Arief <me@myconan.net> 
parents: 
52 
diff
changeset
 | 
90 | 
| 
49
 
b924652e169d
[bash] Various tweaks: prompt, unset for check variables, etc
 
Edho Prima Arief <me@myconan.net> 
parents: 
48 
diff
changeset
 | 
91 unset _has_gnu_ls | 
| 58 | 92 unset _has_gnu_grep | 
| 
238
 
5dcbf6ab0109
Prioritize gnuls over colorls on OpenBSD. Modified GNU ls alias to allow different executable name.
 
Edho Arief <edho@myconan.net> 
parents: 
141 
diff
changeset
 | 
93 unset _ls | 
| 
49
 
b924652e169d
[bash] Various tweaks: prompt, unset for check variables, etc
 
Edho Prima Arief <me@myconan.net> 
parents: 
48 
diff
changeset
 | 
94 | 
| 261 | 95 # Custom application I usually install and safe to prioritize | 
| 96 for i in {"${HOME}/app","/opt"}/{tmux,ruby19,node,tarsnap,symon,nginx}/{bin,sbin}; do | |
| 97 [ -d "${i}" ] && PATH="${i}:${PATH}" | |
| 98 done | |
| 99 | |
| 
264
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
100 # MySQL in common locations highest priority since new = better. Also no compatibility problem. | 
| 
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
101 # Cluster is superset of Enterprise/GPL so it gets highest priority. | 
| 
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
102 # And use only one. | 
| 
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
103 for mydir in {"${HOME}",/app{,s},/opt}/mysql/{{cluster,enterprise}/mysql/,}bin; do | 
| 
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
104 if [ -d "${mydir}" ]; then | 
| 
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
105 PATH="${mydir}:${PATH}" | 
| 
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
106 break | 
| 
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
107 fi | 
| 
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
108 done | 
| 
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
109 | 
| 261 | 110 # Mercurial is optional since it will be inconsistent with ssh ... hg if this one gets priority. | 
| 
264
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
111 # And use only one. | 
| 261 | 112 for hgdir in {"${HOME}/app","/opt"}/mercurial; do | 
| 
264
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
113 if [ -x "${hgdir}/hg" ]; then | 
| 
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
114 PATH="${PATH}:${hgdir}" | 
| 
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
115 break | 
| 
 
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
 
Edho Arief <edho@myconan.net> 
parents: 
262 
diff
changeset
 | 
116 fi | 
| 261 | 117 done | 
| 
56
 
9343fa4dfd91
[bash] we have vim. Probably.
 
Edho Prima Arief <me@myconan.net> 
parents: 
55 
diff
changeset
 | 
118 | 
| 59 | 119 case "${TERM}" in | 
| 
254
 
dde04581a2bf
Combined PS1 and PROMPT_COMMAND conditional.
 
Edho Arief <edho@myconan.net> 
parents: 
253 
diff
changeset
 | 
120 xterm*|screen*|dtterm*) | 
| 
260
 
6bdfe1746bb1
Solaris' id doesn't have `id -un`, use `who am i | cut -d ' ' -f 1` instead.
 
Edho Arief <edho@myconan.net> 
parents: 
257 
diff
changeset
 | 
121 PROMPT_COMMAND='echo -ne "\033]0;'"$(who am i | cut -d ' ' -f 1)@$(uname -n)"': ${PWD}\007";'"${PROMPT_COMMAND}" | 
| 
254
 
dde04581a2bf
Combined PS1 and PROMPT_COMMAND conditional.
 
Edho Arief <edho@myconan.net> 
parents: 
253 
diff
changeset
 | 
122 PS1='[\[\e[0;33m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\] \[\e[1;34m\]\W\[\e[0m\]]\$ ' | 
| 
 
dde04581a2bf
Combined PS1 and PROMPT_COMMAND conditional.
 
Edho Arief <edho@myconan.net> 
parents: 
253 
diff
changeset
 | 
123 ;; | 
| 
 
dde04581a2bf
Combined PS1 and PROMPT_COMMAND conditional.
 
Edho Arief <edho@myconan.net> 
parents: 
253 
diff
changeset
 | 
124 *) | 
| 
 
dde04581a2bf
Combined PS1 and PROMPT_COMMAND conditional.
 
Edho Arief <edho@myconan.net> 
parents: 
253 
diff
changeset
 | 
125 PS1='[\u@\h \W]\$ ' | 
| 59 | 126 ;; | 
| 127 esac | |
| 128 | |
| 
63
 
b7814634220a
[bash] branch merge, added EDITOR change to vim when detected.
 
Edho Prima Arief <me@myconan.net> 
parents: 
62 
diff
changeset
 | 
129 if command -v vim > /dev/null 2>&1; then | 
| 
 
b7814634220a
[bash] branch merge, added EDITOR change to vim when detected.
 
Edho Prima Arief <me@myconan.net> 
parents: 
62 
diff
changeset
 | 
130 alias vi=vim | 
| 
 
b7814634220a
[bash] branch merge, added EDITOR change to vim when detected.
 
Edho Prima Arief <me@myconan.net> 
parents: 
62 
diff
changeset
 | 
131 export EDITOR=vim | 
| 
 
b7814634220a
[bash] branch merge, added EDITOR change to vim when detected.
 
Edho Prima Arief <me@myconan.net> 
parents: 
62 
diff
changeset
 | 
132 fi | 
| 266 | 133 | 
| 134 rm -If "/tmp/.nonexistent.$(date '+%Y%m%d%H%M%S')" 2> /dev/null && alias rm="rm -I" | |
| 135 | |
| 71 | 136 [ -f "${HOME}/.ecos_bash.after" ] && . "${HOME}/.ecos_bash.after" | 
| 
117
 
548cf46e9cb4
Ensures no double loading using C-style variable test.
 
Edho Prima Arief <edho@myconan.net> 
parents: 
112 
diff
changeset
 | 
137 | 
