Mercurial > ec-dotfiles
annotate rc/bash @ 278:8e451b27baa5
Multi CPU Top on FreeBSD.
author | Edho Arief <edho@myconan.net> |
---|---|
date | Thu, 08 Dec 2011 16:27:53 +0700 |
parents | 8096bb665d4a |
children | 33d0cb669e1f |
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 |
276 | 20 PROMPT_COMMAND="history -a" |
111
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" |
270
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
38 _grep="grep" |
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
39 _has_posix_grep=y |
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
40 |
43 | 41 case "$(uname -s)" in |
42 Linux) | |
43 _has_gnu_ls=y | |
96
26c9dc482051
Merge. Linux obviously has gnu grep.
Edho Prima Arief <edho@myconan.net>
parents:
75
diff
changeset
|
44 _has_gnu_grep=y |
43 | 45 ;; |
46 SunOS) | |
270
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
47 _has_posix_grep=n |
43 | 48 [ -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
|
49 [ -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
|
50 # Higher priority directories |
e6de49d70fe7
(Not so) simplified solaris path add.
Edho Arief <edho@myconan.net>
parents:
252
diff
changeset
|
51 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
|
52 [ -d "${i}" ] && PATH="${i}:${PATH}" |
e6de49d70fe7
(Not so) simplified solaris path add.
Edho Arief <edho@myconan.net>
parents:
252
diff
changeset
|
53 done |
e6de49d70fe7
(Not so) simplified solaris path add.
Edho Arief <edho@myconan.net>
parents:
252
diff
changeset
|
54 for i in /usr/{sfw,xpg4}/bin; do |
e6de49d70fe7
(Not so) simplified solaris path add.
Edho Arief <edho@myconan.net>
parents:
252
diff
changeset
|
55 [ -d "${i}" ] && PATH="${PATH}:${i}" |
e6de49d70fe7
(Not so) simplified solaris path add.
Edho Arief <edho@myconan.net>
parents:
252
diff
changeset
|
56 done |
57
ada5b9534765
[bash] Sanitize sunos ping.
Edho Prima Arief <me@myconan.net>
parents:
56
diff
changeset
|
57 alias ping="ping -s" |
ada5b9534765
[bash] Sanitize sunos ping.
Edho Prima Arief <me@myconan.net>
parents:
56
diff
changeset
|
58 alias ping6="ping -A inet6" |
265 | 59 # 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
|
60 # 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
|
61 # 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
|
62 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
|
63 alias tmux="TERM=xterm-256color tmux" |
feab84a8efdb
Merge. Also more workaround for Solaris tmux.
Edho Arief <edho@myconan.net>
diff
changeset
|
64 else |
feab84a8efdb
Merge. Also more workaround for Solaris tmux.
Edho Arief <edho@myconan.net>
diff
changeset
|
65 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
|
66 fi |
feab84a8efdb
Merge. Also more workaround for Solaris tmux.
Edho Arief <edho@myconan.net>
diff
changeset
|
67 [ -f /usr/share/lib/terminfo/?/"${TERM}" ] || export TERM=dtterm |
270
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
68 if command -v ggrep > /dev/null 2>&1; then |
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
69 _has_gnu_grep=y |
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
70 _grep="ggrep" |
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
71 fi |
43 | 72 ;; |
275 | 73 FreeBSD) |
74 # Invalid characters when using en_US.UTF-8. | |
75 alias man="man -o" | |
278 | 76 # Multi CPU awesomeness. |
77 alias top="top -P" | |
275 | 78 ;; |
62 | 79 OpenBSD) |
255 | 80 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
|
81 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
|
82 _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
|
83 _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
|
84 elif command -v colorls > /dev/null 2>&1; then |
276 | 85 alias ls="colorls -F" |
62 | 86 fi |
87 ;; | |
249 | 88 NetBSD) |
255 | 89 PATH="${PATH}:/usr/pkg/bin:/usr/pkg/sbin" |
249 | 90 if command -v gls > /dev/null 2>&1; then |
91 _has_gnu_ls=y | |
92 _ls="gls" | |
93 elif command -v colorls > /dev/null 2>&1; then | |
276 | 94 alias ls="colorls -F" |
249 | 95 fi |
96 ;; | |
67 | 97 CYGWIN*) |
98 export PATH="${PATH}:${_org_path}" | |
99 ;; | |
43 | 100 esac |
101 | |
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
|
102 [ "${_has_gnu_ls}" = y ] && alias ls="${_ls} -F --color=auto" |
270
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
103 if [ "${_has_gnu_grep}" = y ]; then |
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
104 alias grep="${_grep} --color=auto" |
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
105 _has_posix_grep=y |
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
106 fi |
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
107 if [ "${_has_posix_grep}" = y ]; then |
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
108 alias fgrep="grep -F" |
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
109 alias egrep="grep -E" |
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
110 fi |
53
b9db5d89aae3
[bash] POSIX grep, GNU grep, standardized quote (" unless ' required).
Edho Prima Arief <me@myconan.net>
parents:
52
diff
changeset
|
111 |
49
b924652e169d
[bash] Various tweaks: prompt, unset for check variables, etc
Edho Prima Arief <me@myconan.net>
parents:
48
diff
changeset
|
112 unset _has_gnu_ls |
58 | 113 unset _has_gnu_grep |
270
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
114 unset _has_posix_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
|
115 unset _ls |
270
0e41725e7d38
Grep, GNU Grep, Solaris Grep, etc.
Edho Arief <edho@myconan.net>
parents:
269
diff
changeset
|
116 unset _grep |
49
b924652e169d
[bash] Various tweaks: prompt, unset for check variables, etc
Edho Prima Arief <me@myconan.net>
parents:
48
diff
changeset
|
117 |
261 | 118 # Custom application I usually install and safe to prioritize |
119 for i in {"${HOME}/app","/opt"}/{tmux,ruby19,node,tarsnap,symon,nginx}/{bin,sbin}; do | |
120 [ -d "${i}" ] && PATH="${i}:${PATH}" | |
121 done | |
122 | |
264
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
Edho Arief <edho@myconan.net>
parents:
262
diff
changeset
|
123 # 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
|
124 # 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
|
125 # And use only one. |
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
Edho Arief <edho@myconan.net>
parents:
262
diff
changeset
|
126 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
|
127 if [ -d "${mydir}" ]; then |
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
Edho Arief <edho@myconan.net>
parents:
262
diff
changeset
|
128 PATH="${mydir}:${PATH}" |
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
Edho Arief <edho@myconan.net>
parents:
262
diff
changeset
|
129 break |
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
Edho Arief <edho@myconan.net>
parents:
262
diff
changeset
|
130 fi |
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
Edho Arief <edho@myconan.net>
parents:
262
diff
changeset
|
131 done |
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
Edho Arief <edho@myconan.net>
parents:
262
diff
changeset
|
132 |
261 | 133 # 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
|
134 # And use only one. |
261 | 135 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
|
136 if [ -x "${hgdir}/hg" ]; then |
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
Edho Arief <edho@myconan.net>
parents:
262
diff
changeset
|
137 PATH="${PATH}:${hgdir}" |
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
Edho Arief <edho@myconan.net>
parents:
262
diff
changeset
|
138 break |
c6c322c57e0e
Paths for MySQL, instabreak for mercurial.
Edho Arief <edho@myconan.net>
parents:
262
diff
changeset
|
139 fi |
261 | 140 done |
56
9343fa4dfd91
[bash] we have vim. Probably.
Edho Prima Arief <me@myconan.net>
parents:
55
diff
changeset
|
141 |
273
cf23a637f3a5
Supervisor support. Added on last since I usually install it in virtualenv
Edho Arief <edho@myconan.net>
parents:
271
diff
changeset
|
142 for supbindir in {"${HOME}/app","/opt"}/supervisor{,d}/bin; do |
cf23a637f3a5
Supervisor support. Added on last since I usually install it in virtualenv
Edho Arief <edho@myconan.net>
parents:
271
diff
changeset
|
143 if [ -d "${supbindir}" ]; then |
cf23a637f3a5
Supervisor support. Added on last since I usually install it in virtualenv
Edho Arief <edho@myconan.net>
parents:
271
diff
changeset
|
144 PATH="${PATH}:${supbindir}" |
cf23a637f3a5
Supervisor support. Added on last since I usually install it in virtualenv
Edho Arief <edho@myconan.net>
parents:
271
diff
changeset
|
145 break |
cf23a637f3a5
Supervisor support. Added on last since I usually install it in virtualenv
Edho Arief <edho@myconan.net>
parents:
271
diff
changeset
|
146 fi |
cf23a637f3a5
Supervisor support. Added on last since I usually install it in virtualenv
Edho Arief <edho@myconan.net>
parents:
271
diff
changeset
|
147 done |
cf23a637f3a5
Supervisor support. Added on last since I usually install it in virtualenv
Edho Arief <edho@myconan.net>
parents:
271
diff
changeset
|
148 |
59 | 149 case "${TERM}" in |
254
dde04581a2bf
Combined PS1 and PROMPT_COMMAND conditional.
Edho Arief <edho@myconan.net>
parents:
253
diff
changeset
|
150 xterm*|screen*|dtterm*) |
271
003b0c8870b3
As it turns out who am i doesn't respect current actual user. Replaced with ancient but better version. Either LOGNAME or USER. Whichever has value.
Edho Arief <edho@myconan.net>
parents:
270
diff
changeset
|
151 PROMPT_COMMAND='echo -ne "\033]0;'"${USER:-$LOGNAME}@$(uname -n)"': ${PWD}\007";'"${PROMPT_COMMAND}" |
254
dde04581a2bf
Combined PS1 and PROMPT_COMMAND conditional.
Edho Arief <edho@myconan.net>
parents:
253
diff
changeset
|
152 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
|
153 ;; |
dde04581a2bf
Combined PS1 and PROMPT_COMMAND conditional.
Edho Arief <edho@myconan.net>
parents:
253
diff
changeset
|
154 *) |
dde04581a2bf
Combined PS1 and PROMPT_COMMAND conditional.
Edho Arief <edho@myconan.net>
parents:
253
diff
changeset
|
155 PS1='[\u@\h \W]\$ ' |
59 | 156 ;; |
157 esac | |
158 | |
63
b7814634220a
[bash] branch merge, added EDITOR change to vim when detected.
Edho Prima Arief <me@myconan.net>
parents:
62
diff
changeset
|
159 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
|
160 alias vi=vim |
b7814634220a
[bash] branch merge, added EDITOR change to vim when detected.
Edho Prima Arief <me@myconan.net>
parents:
62
diff
changeset
|
161 export EDITOR=vim |
b7814634220a
[bash] branch merge, added EDITOR change to vim when detected.
Edho Prima Arief <me@myconan.net>
parents:
62
diff
changeset
|
162 fi |
266 | 163 |
164 rm -If "/tmp/.nonexistent.$(date '+%Y%m%d%H%M%S')" 2> /dev/null && alias rm="rm -I" | |
165 | |
71 | 166 [ -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
|
167 |