#!/usr/bin/env bash
# vim:syntax=sh
# default Byobu session name
export BSNAME="CHANGEME"
# default screenshot target. Feel free to override in .local.
export SCRSHDIR="${HOME}/Pictures"
# variables for SSH, override in .local:
export SSHHOME="${HOME}/.ssh"
# 1. key files, array:
SSHKEYS=( "${SSHHOME}/id_ed25519" "${SSHHOME}/id_rsa" )
# 2. SSH environment file
export SSHENVFILE="${HOME}/.ssh/sshenv"
# 3. Hosts on which ssh-agent should run, FQDN. Array.
# Typically, "hosts" will equal your workstations. See ssh_config(5) (esp. ForwardAgent)
# Interpreted by fgrep / grep -F.
SSHAGH=( "riesling.example.com" "schorle.example.com" )
SSHAGH+=( "woschd.example.com" )
export SSHAGH
# ----- SHELL ----- #
for pa in "/usr/local/bin" "${HOME}/bin";do
if ! printf "%b" "$PATH"|grep -P "^${pa}:|:${pa}:" >/dev/null;then
export PATH="${pa}:${PATH}"
fi
done
# $OSNAME
if [ -r "/etc/os-release" ];then
OSNAME="$(grep ^ID /etc/os-release|awk -F= '{print $NF}'|head -n1)"
elif [ -r "/etc/redhat-release" ];then
grep -P "^Red[\ ]?[Hh]at" /etc/redhat-release >/dev/null 2>&1 && OSNAME="redhat"
grep -P "^[Ff]edora" /etc/redhat-release >/dev/null 2>&1 && OSNAME="fedora"
grep -P "^[Cc]ent[Oo][Ss]" /etc/redhat-release >/dev/null 2>&1 && OSNAME="centos"
[ -z "$OSNAME" ]&&OSNAME="obsolete"
elif [ -r "/etc/SuSE-release" ];then
OSNAME="oldsuse"
elif [ -r "/etc/release" ];then
head -n1 /etc/release 2> /dev/null|grep -i solaris > /dev/null && OSNAME="solaris"
[ -z "$OSNAME" ]&&OSNAME="obsolete"
else
[ "$(oslevel -s >/dev/null 2>&1|wc -l)" -gt 0 ]&&OSNAME="aix"
[ -z "$OSNAME" ]&&OSNAME="obsolete"
fi
declare -x GPG_TTY
GPG_TTY="$(tty)"
export e='2.718281828459045'
if command -v bc >/dev/null;then
declare -x pi
pi="$(echo "scale=64; 4*a(1)" | bc -l)"
fi
# ----- GIT ----- #
# git on the command line
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWSTASHSTATE=1
export GIT_PS1_SHOWUNTRACKEDFILES=1
# ----- LESS FOR EVERYTHING ----- #
if command -v less >/dev/null;then
# coloured mapages
export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)"
export SYSTEMD_PAGER="less"
export LESSANSIENDCHARS="m"
export LESSANSIMIDCHARS="0123456789:;[?!\"'#%()*+ "
fi
# ----- MISC ----- #
# nopaste
export NOPASTE_SERVICES='pastebin nopaste'
export NOPASTE_NICK='CHANGEME'
# libvirt
export LIBVIRT_DEFAULT_URI="qemu:///system"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
\e68f";}
nav a[title="about"]:before {content:"\e61f";}
nav a[title="contact"]:before {content:"\e6e1";}
nav a[title="teamspeak"]:before {content:"\e661";}
nav a[title="minecraft"]:before {content:"\e627";}
nav a[title="git"]:before {content:"\e6b8";}
nav a[title="blog"]:before {content:"\e671";}
nav a[title="philosophy"]:before {content:"\262f";}
nav a[title="hots"]:before {
content:" ";
background:transparent url('//lirion.de/heroes-of-the-storm.svg') center center;
background-size:1em 1em;
width:1em;height:1em;text-align:center;margin:0 auto;padding:0;display:inline-block;}
nav a[title="autoconf"]:before {content:"\e604";}
nav a[title="redhat"] {
background:transparent url('/assets/fedora.png') no-repeat center center;
/*background-size:auto 1.3em;*/
margin-right:-1em;
}
nav a[title="mastodon"]:before {content:"\e72a";}
nav a[title="packages"]:before {content:"\e69e";}
nav > a >span {display:none;font-size:0;width:1px;}
ul {list-style-type: square;}
/*section#maint {
background-color:rgba(204,204,204,.75);border-radius:8px;
-moz-box-shadow: 0 1px 4px rgba(0,0,0,0.5), inset 0 1px rgba(255,255,255,0.3),
inset 0 5px rgba(255,255,255,0.2), inset 0 5px 10px rgba(255,255,255,0.25),
inset 0 -8px 15px rgba(0,0,0,0.3);
box-shadow: 0 1px 4px rgba(0,0,0,0.5), inset 0 1px rgba(255,255,255,0.3),
inset 0 5px rgba(255,255,255,0.2), inset 0 5px 10px rgba(255,255,255,0.25),
inset 0 -8px 15px rgba(0,0,0,0.3);
}*/
section,main.page-content,footer,#cgit {
/*background-color:rgba(245,245,245,.8);
box-shadow: 0 0 3px 0 rgba(0,0,0,0.25);*/
/*background-color:rgba(200,245,205,0.7);*/
background-color:rgba(210,240,216,0.7);
box-shadow:0 0 4px 0 rgba(0,10,0,0.4);
/*-moz-box-shadow: 0 0 3px 0 rgba(0,0,0,0.25);*/
padding:0.5em 1em;
margin:0 auto;
margin-top:2em;/*margin-bottom:2em;*/
max-width:70%;
}
div#cgit {
background-color:rgba(210,240,216,0.7)!important;
margin: auto;
margin-top:2em!important;
padding:1em!important;
width:75em!important;
font-family:"Telex","Helvetica Neue",Helvetica,Arial,sans-serif;
}
div#cgit div.content {background:#f5f5f5!important;overflow:auto;}
div#cgit div.footer {color:#888!important;}
div#cgit div.footer a {color:#666!important;}
#cgit h1,#cgit h2,#cgit h3 {
font-family:"Telex","Helvetica Neue",Helvetica,Arial,sans-serif;
}
div#cgit table#header td.main {word-spacing:0.1em;}
/*div#cgit pre {white-space:pre-wrap;} :( */
footer {margin-bottom:2em;}
section:nth-last-child(3) {margin-bottom:5em;}
section h2 {text-align:center;margin-top:0;padding-top:0;}
section a {text-decoration:none;}
section a, section a:visited {color:#007a37;}
section a:hover, section a:active {color:#e56b00;}
#links ul {list-style-type:none;text-transform:lowercase;}
/*#links ul li {border-bottom:1px solid #e0e0e0;padding:0.4em 0 0.3em 0;width:15em;margin:0 auto;text-align:center;}*/
#links ul li {padding:0.2em 0 0.3em 2em;margin:0.1em 0 0.1em 0;width:19em;}
#links ul li:nth-child(2n) {float:right;}
#links ul li:nth-child(4n) {background:rgba(80,80,80,0.1);}
#links ul li:nth-child(2n+1) {float:left;}
#links ul li:nth-child(4n-1) {background:rgba(80,80,80,0.1);}
#links:after {clear:both;content:" ";display:block;}
#teamspeak_srv {background-color:rgba(225,245,220,0.7);}
#teamspeak_srv>div.content {margin:0 auto;font-size:13px;width:29.5em;font-family:"Telex","Helvetica Neue",Helvetica,Arial,sans-serif;}
#teamspeak_srv div.copy { display:none!important; }
#teamspeak_srv .content:last-child { margin-bottom:2em; }
aside#ts3remark {margin-top:4em;font-size:66%;text-align:center;font-style:italic;}
#validate {
transform: rotate(45deg);
/*-webkit-transform: rotate(45deg); /*FUCK YOU CHROME, SAFARI AND OPERA*/
/*-ms-transform: rotate(45deg); /*FUCK YOU INTERNET EXPLORER 9 AND BELOW*/
position:fixed;bottom:0;left:0;text-align:center;text-transform:lowercase;width:100%;margin-left:-45.666%;margin-bottom:1.666em;
}
#validate > p {margin:0;font-weight:bold;}
#validate a {text-decoration:none;}
#validate a:hover{text-decoration:none;}
#validate > p:first-child {/*background:#0092bf;*/color:white;border-top:1px solid;border-color:#058;background:rgba(0,126,178,.8);}
#validate > p:nth-child(2) {/*background:#90c140;*/color:white;border-bottom:1px solid;border-color:#591;background:rgba(124,178,54,.8);}
#validate > p a {
color:white;display:inline-block;padding:0.3em 25px 0.3em 0.3em;box-sizing:content-box;height:100%;
background-size:auto 24px;
}
#validate > p:first-child a {
background:transparent url('/flags/html5.png') right center no-repeat scroll;
}
#validate > p:nth-child(2) a {
background:transparent url('/flags/css3.png') right center no-repeat scroll;
}
#validate > p span:last-child {display:none;}
/*#validate > p:last-child a {color:#3e7000;}
#validate > p:last-child a:hover {color:#c9910e;}*/
/*#mail h2:before {content:"\2709\fe0f\000a";display:block;font-size:4em;}*/
#mail h2:before {content:"\2709";display:block;font-size:4em;}
#mail,#philosophy,#hots {text-align:justify;}
#mail h2:before, #philosophy h2:before,#hots h2:before {
font-family:"Elusive Icons";
display:block;font-size:3em;font-weight:normal;
}
#mail h2:before {content:"\e6e1";}
#mail .remark,#philosophy .remark,#hots .remark {font-size:80%;margin-top:2em;font-style:italic;}
#mail strong,#philosophy strong {color:#a00;}
/*#philosophy h2:before {content:"\262f\fe0f\000a";display:block;font-size:4em;}*/
#philosophy h2:before {content:"\262f";}
#hots h2:before {
content:" ";
background:transparent url('//lirion.de/heroes-of-the-storm.svg') center center;
background-size:1.5em 1.5em;
width:1.5em;height:1.5em;text-align:center;margin:0 auto;padding:0;display:block;
}
#hots p#hotslogs {text-align:center; margin:0 auto;margin-bottom:1em;}
#rebuild {text-decoration:blink;color:#30c000;}
#os-releases {/*width:66.6%;*/margin-left:2em;}
#os-releases th {text-align:left;}
#os-releases tr:nth-child(2n-1) td {background-color:#bcd1c1;}
#os-releases tr td,#os-releases tr th {padding:0 0.75em;}
#os-releases tr td.hash {font-family:"DejaVu Sans Mono",Monospace,monospace,serif;font-size:90%;}
#nowww {
position:fixed;top:4em;right:1em;margin:0;padding:0;
background:transparent url('/assets/no_www.png') bottom right no-repeat;
background-size:80px auto;width:80px;height:80px;
}
#nowww a {
display:block;margin:0;padding:0;
width:80px;height:80px;
}
#nowww a span {display:none;}
div.markdown-body p:last-child { padding-bottom:1.5em; }
div#cgit {margin-bottom:2em;}
@keyframes fadeDown {
0% {
opacity: 0;
transform: translateY(-20px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
.fadeDown, header {
animation:fadeDown 1s ease;
}
/* jekyll */
header.post-header { margin-top: 0.1337em; }
.post h1 { font-size:2.1337em; text-align: left; }
.post h1+p { text-align: left; }
ul.post-list {
background: #f0f0f0;
list-style: none;
padding-inline-start: 0;
padding: 0.8em;
}
ul.post-list li { padding:0.4em; }
ul.post-list li:nth-child(2n-1) { background-color:#ffffff; }
ul.post-list li span.post-meta {
font-weight: bold;font-style: oblique;font-size:100%;
}
ul.post-list li span.post-meta:after { content: ':'; }
ul.post-list li h3 {
font-size: 100%;font-weight: normal; display: inline;
margin-left: 1em;
font-family: "Telex","Helvetica Neue",Helvetica,Arial,sans-serif;
border-bottom: none;
}
ul.post-list li h3 a {
text-decoration: none;
}
nav.blog-nav {
background: transparent;
position: static;
border: none;
}
.blog-nav .nav-trigger { display:none; }
.blog-nav .menu-icon { display:none; }
.post-content table {
margin-bottom: 30px;
width: 100%;
text-align: left;
color: #3f3f3f;
border-collapse: collapse;
border: 1px solid #d0d0d0; }
.post-content table tr:nth-child(odd) {
background-color: #e0e0e0; }
.post-content table tr:nth-child(even) {
background-color: #f0f0f0; }
.post-content table th, table td {
padding: 10px 15px; }
.post-content table th {
background-color: #f0f0f0;
border: 1px solid #dedede;
border-bottom-color: #c9c9c9; }
.post-content table td {
border: 1px solid #e8e8e8; }
.blog-nav a.page-link {
text-decoration: none;
font-size:110%;
border-left: 1px solid;
border-right: 1px solid;
margin-left: 0.1em;margin-right:0.1em;
padding-left:0.7331em;padding-right: 0.7331em;
display: inline-block;
}
.blog-nav a.page-link:first-child {
margin-left: 0;
border-left: 0;
}
.blog-nav a.page-link:last-child {
margin-right: 0;
border-right: 0;
}
figure.highlight {
margin: 0 auto;
margin-left: 1em;
padding: 0.666em;
}
figure.highlight pre {
margin-top: 0;
margin-bottom: 0;
overflow-x: auto;
overflow-y: hidden;
}
figure.highlight pre code, code.highlighter-rouge {
font-size: 0.8em;
}
article.post div.post-content, #tocw {
background: rgba(251,255,253,0.6);
padding: 0.666em;
}
main.page-content a, footer.site-footer a {
text-decoration: none;
color: #169b62;
font-weight: 550;
}
main.page-content a:hover, footer.site-footer a:hover, main.page-content a:active,
footer.site-footer a:active {
color: #ff883e;
}
.highlight { background: #e8fff0; }
#tocw ol {
list-style-type: decimal;
counter-reset: item;
padding-left: 10px;
}
#tocw ol li {
display: block;
}
#tocw > ol > li {
padding-left: 0.5em;
}
#tocw > ol > li > ol > li {
padding-left: 0.666em;
}
#tocw > ol > li > ol > li > ol > li {
padding-left: 1.337em;
}
#tocw ol li:before {
content: counters(item, ".") ". ";
counter-increment: item
}
/*main.page-content h2:before {
content: counter(heading)". ";
counter-increment: heading;
}
main.page-content h2 {
counter-reset: subheading;
}
main.page-content h3:before {
content: counter(heading)"." counter(subheading)". ";
counter-increment: subheading;
}*/
/**
* Syntax highlighting styles
*/
.highlight {
background: #fff; }
.highlighter-rouge .highlight {
background: #eef; }
.highlight .c {
color: #998;
font-style: italic; }
.highlight .err {
color: #a61717;
background-color: #e3d2d2; }
.highlight .k {
font-weight: bold; }
.highlight .o {
font-weight: bold; }
.highlight .cm {
color: #998;
font-style: italic; }
.highlight .cp {
color: #999;
font-weight: bold; }
.highlight .c1 {
color: #998;
font-style: italic; }
.highlight .cs {
color: #999;
font-weight: bold;
font-style: italic; }
.highlight .gd {
color: #000;
background-color: #fdd; }
.highlight .gd .x {
color: #000;
background-color: #faa; }
.highlight .ge {
font-style: italic; }
.highlight .gr {
color: #a00; }
.highlight .gh {
color: #999; }
.highlight .gi {
color: #000;
background-color: #dfd; }
.highlight .gi .x {
color: #000;
background-color: #afa; }
.highlight .go {
color: #888; }
.highlight .gp {
color: #555; }
.highlight .gs {
font-weight: bold; }
.highlight .gu {
color: #aaa; }
.highlight .gt {
color: #a00; }
.highlight .kc {
font-weight: bold; }
.highlight .kd {
font-weight: bold; }
.highlight .kp {
font-weight: bold; }
.highlight .kr {
font-weight: bold; }
.highlight .kt {
color: #458;
font-weight: bold; }
.highlight .m {
color: #099; }
.highlight .s {
color: #d14; }
.highlight .na {
color: #008080; }
.highlight .nb {
color: #0086B3; }
.highlight .nc {
color: #458;
font-weight: bold; }
.highlight .no {
color: #008080; }
.highlight .ni {
color: #800080; }
.highlight .ne {
color: #900;
font-weight: bold; }
.highlight .nf {
color: #900;
font-weight: bold; }
.highlight .nn {
color: #555; }
.highlight .nt {
color: #000080; }
.highlight .nv {
color: #008080; }
.highlight .ow {
font-weight: bold; }
.highlight .w {
color: #bbb; }
.highlight .mf {
color: #099; }
.highlight .mh {
color: #099; }
.highlight .mi {
color: #099; }
.highlight .mo {
color: #099; }
.highlight .sb {
color: #d14; }
.highlight .sc {
color: #d14; }
.highlight .sd {
color: #d14; }
.highlight .s2 {
color: #d14; }
.highlight .se {
color: #d14; }
.highlight .sh {
color: #d14; }
.highlight .si {
color: #d14; }
.highlight .sx {
color: #d14; }
.highlight .sr {
color: #009926; }
.highlight .s1 {
color: #d14; }
.highlight .ss {
color: #990073; }
.highlight .bp {
color: #999; }
.highlight .vc {
color: #008080; }
.highlight .vg {
color: #008080; }
.highlight .vi {
color: #008080; }
.highlight .il {
color: #099; }
git.lirion.de
Of git, get, and gud
lirion.de
Links
About
Contact
GIT
Blog
autoconf
packages
Mastodon
blob: 12b1a6ead55bd39c5aa5ffd52668bbededb94506 (
plain )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/usr/bin/env bash
# vim:syntax=sh:ts=4
# ----- PROMPT COLOURS ----- #
fgcolor () {
#echo "\\[\\033[38;5;"$1"m\\]"
echo "\033[38;5; ${ 1 } m"
}
fgtcolor () {
echo "\033[38;2; $1 ; $2 ; $3 m"
}
bgcolor () {
#echo "\\[\\033[48;5;"$1"m\\]"
echo "\033[48;5; ${ 1 } m"
}
# This is Solaris bash compatible, so we cannot use + here for "at least once) but instead use the
# stupid old asterisk (*). Well, here hetting "no digits" practically won't hurt.
MYUID = " $( id| sed 's/.*uid=\([0-9]*\).*/\1/g' ) " ; export MYUID
# ...because "empty" will hit the "any" condition in the end :)
case " $MYUID " in
0 )
FGC1 = "fgcolor 88"
case " $OSNAME " in
debian) FGC3 = "fgcolor 38" ; FGC2 = "fgtcolor 155 15 64" ;;
arch) FGC2 = "fgcolor 24" ; FGC3 = "fgcolor 240" ;;
redhat) FGC1 = "fgcolor 23" ; FGC2 = "fgcolor 88" ; FGC3 = "fgcolor 203" ;;
fedora) FGC1 = "fgcolor 160" ; FGC2 = "fgcolor 88" ; FGC3 = "fgcolor 203" ;;
# with the advent of Rocky, we'll match the time to SUSE's blue and the hostname to
# the colour of Geeko:
#*suse|aix) FGC2="fgcolor 22";FGC3="fgcolor 41";;
*sles*) FGC2 = "fgcolor 22" ; FGC3 = "fgcolor 83" ;;
*suse) FGC2 = "fgcolor 30" ; FGC3 = "fgcolor 83" ;;
aix) FGC2 = "fgcolor 238" ; FGC3 = "fgcolor 83" ;;
*centos*) FGC2 = "fgcolor 25" ; FGC3 = "fgcolor 208" ;;
*solaris) FGC2 = "fgcolor 31" ; FGC3 = "fgcolor 124" ;;
ubuntu) FGC2 = "fgcolor 130" ; FGC3 = "fgcolor 215" ;;
rasp*) FGC2 = "fgcolor 253" ; FGC3 = "fgcolor 126" ;;
rocky) FGC2 = "fgcolor 22" ; FGC3 = "fgcolor 41" ;;
*) FGC2 = "fgcolor 240" ; FGC3 = "fgcolor 244" ;;
esac
;;
*)
FGC2 = "fgcolor 253"
case " $OSNAME " in
debian) FGC1 = "fgtcolor 155 15 64" ; FGC3 = "fgcolor 38" ;;
arch) FGC1 = "fgcolor 24" ; FGC3 = "fgcolor 239" ;;
redhat) FGC1 = "fgcolor 23" ; FGC3 = "fgcolor 88" ;;
fedora) FGC1 = "fgcolor 88" ; FGC3 = "fgcolor 203" ;;
#*suse|aix) FGC1="fgcolor 22";FGC3="fgcolor 41";;
*sles*) FGC1 = "fgcolor 22" ; FGC3 = "fgcolor 83" ;;
*suse) FGC1 = "fgcolor 30" ; FGC3 = "fgcolor 83" ;;
aix) FGC1 = "fgcolor 238" ; FGC3 = "fgcolor 83" ;;
*centos*) FGC1 = "fgcolor 25" ; FGC3 = "fgcolor 208" ;;
*solaris) FGC1 = "fgcolor 31" ; FGC3 = "fgcolor 124" ;;
ubuntu) FGC1 = "fgcolor 130" ; FGC3 = "fgcolor 215" ;;
rasp*) FGC1 = "fgcolor 53" ; FGC3 = "fgcolor 126" ;;
rocky) FGC1 = "fgcolor 22" ; FGC3 = "fgcolor 41" ;;
*) FGC1 = "fgcolor 240" ; FGC3 = "fgcolor 244" ;;
esac
;;
esac
# make it possible to draw user-defined colours
# shellcheck disable=SC1090
[ -r " ${ BBD } /prompt.bash.local" ] && source " ${ BBD } /prompt.bash.local"
# ----- USER SEP. AND HOSTNAME ----- #
UHSEP = "@"
[ -n " $TMUX_PANE " ]&& UHSEP = "[T]"
[ -n " $BYOBU_WINDOW_NAME " ]&& UHSEP = "[B]"
[ " $( hostname -s) " == "monitoring" ]&& PHN = " $( hostname -f) " || PHN = " $( hostname -s) "
# ----- ASSEMBLE THE PROMPT COMMAND ADDITION ----- #
__prompt_command() {
local EXIT = " $? "
if [ " $EXIT " -lt 10 ] ; then
local EXIT2 = "00 $EXIT "
elif [ " $EXIT " -lt 100 ] ; then
local EXIT2 = "0 $EXIT "
else
local EXIT2 = " $EXIT "
fi
case " $MYUID " in
0 )
PS1 = "\\# \[ $( tput bold) \]\[ $( $FGC1 ) \]\\u\[ $( $FGC2 ) \]@ $PHN \[ $( $FGC3 ) \]\\w \[ $( tput sgr0) \]"
;;
*)
PS1 = "\\# \[ $( tput bold) \]\[ $( $FGC1 ) \]\t \[ $( $FGC2 ) \]\\u $UHSEP \[ $( $FGC3 ) \] $PHN \\w \[ $( tput sgr0) \]"
;;
esac
if command -v __git_ps1 >/dev/null 2 >& 1 ; then PS1 += " $( __git_ps1 "%s " ) " ; fi
if [ " $EXIT " -eq 0 ] ; then
PS1 += "\[\033[0;32m\]# "
elif [ " $EXIT " -eq 255 ]||[ " $EXIT " -eq 127 ] ; then
PS1 += "\[\033[0;33m\] $EXIT2 # "
elif [ " $EXIT " -eq 130 ] ; then
PS1 += "\[\033[0;35m\] $EXIT2 # "
else
PS1 += "\[\033[0;31m\] $EXIT2 # "
fi
PS1 += "\[\033[0m\]"
}
# ----- ADD __prompt_command() TO $PROMPT_COMMAND ----- #
if ! printf "%b" " $PROMPT_COMMAND " | grep '__prompt_command' >/dev/null; then
case " $TERM " in
# adding in "screen" because tmux
xterm| xterm-color| xterm-256color| rxvt*| screen-256color| screen)
if [ -n " $PROMPT_COMMAND " ] ; then
export PROMPT_COMMAND = "__prompt_command; ${ PROMPT_COMMAND } "
else
export PROMPT_COMMAND = "__prompt_command"
fi
;;
*)
if [ -n " $PROMPT_COMMAND " ] ; then
export PROMPT_COMMAND = "__prompt_command; ${ PROMPT_COMMAND } "
else
export PROMPT_COMMAND = "__prompt_command"
fi
;;
esac
fi
# ----- HISTORY SUBMISSION IN $PROMPT_COMMAND ----- #
if ! printf "%b" " $PROMPT_COMMAND " | grep 'history -a' >/dev/null; then
if [ -n " $PROMPT_COMMAND " ] ; then
export PROMPT_COMMAND = " $PROMPT_COMMAND ;history -a;history -c;history -r"
else
export PROMPT_COMMAND = "history -a;history -c;history -r"
fi
fi