-
Notifications
You must be signed in to change notification settings - Fork 1
/
dotbash_ps1
156 lines (141 loc) · 3.94 KB
/
dotbash_ps1
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#!/bin/bash
#
# PS1 manipulations
#
# Why go to all this extra stuff. Well mainly to work-around things
# like LAVA which break when they get unexpected login prompts. But it
# is also nice to keep things together.
#
#######################################################################
# Terminal Setup
#
# via http://github.com/ciaranm/dotfiles-ciaranm/tree/master/bashrc
#
# The Apple Terminal doesn't seem to handle 256 colours very well so we
# limit it to a 16 colour display
#######################################################################
case "${TERM}" in
xterm*)
# export TERM=xterm-256color
case "${TERM_PROGRAM}" in
Apple_Terminal)
cache_term_colours=16
;;
*)
cache_term_colours=256
;;
esac
;;
screen*)
cache_term_colours=256
;;
dumb)
cache_term_colours=2
;;
vt100)
cache_term_colours=2
;;
vt102)
cache_term_colours=2
;;
*)
cache_term_colours=16
;;
esac
case "${cache_term_colours}" in
256)
cache_colour_l_blue='\033[38;5;33m'
cache_colour_d_blue='\033[38;5;21m'
cache_colour_m_purp='\033[38;5;69m'
cache_colour_l_yell='\033[38;5;229m'
cache_colour_m_yell='\033[38;5;227m'
cache_colour_m_gren='\033[38;5;35m'
cache_colour_m_grey='\033[38;5;245m'
cache_colour_m_orng='\033[38;5;208m'
cache_colour_l_pink='\033[38;5;206m'
cache_colour_m_teal='\033[38;5;38m'
cache_colour_m_brwn='\033[38;5;130m'
cache_colour_m_red='\033[38;5;196m'
cache_colour_end='\033[0;0m'
;;
16)
cache_colour_l_blue='\033[1;34m'
cache_colour_d_blue='\033[0;32m'
cache_colour_m_purp='\033[0;35m'
cache_colour_l_yell='\033[1;33m'
cache_colour_m_yell='\033[0;33m'
cache_colour_m_gren='\033[0;32m'
cache_colour_m_grey='\033[0;37m'
cache_colour_m_orng='\033[1;31m'
cache_colour_l_pink='\033[1;35m'
cache_colour_m_teal='\033[0;36m'
cache_colour_m_brwn='\033[0;31m'
cache_colour_end='\033[0;0m'
;;
*)
eval unset ${!cache_colour_*}
;;
esac
########################
# PS Setup
########################
# Hangover from the Transitive days, but I do like seeing my processor
PROC=`uname -m`
if [ "$PROC" == "unknown" ]; then
PROC=`uname -m`
fi
ps_proc="\[${cache_colour_m_purp}\]$PROC\[${cache_colour_end}\]"
if [[ `whoami` == "root" ]]; then
ps_user="\[${cache_colour_m_red}\]\u\[${cache_colour_end}\]"
else
ps_user="\u"
fi
# last result
#ps_retval="\[${cache_colour_m_yell}\]\${?/#0/}\[${cache_colour_end}\]"
# We want to extract the screen session name (if it exisits) from STY
function ps_xterm_f()
{
session_name=${STY/*./}
if [ $session_name ]; then
session_name="${session_name}@`hostname`"
else
session_name="`pwd`@`hostname`"
fi
echo -n -e "\e]2;${session_name}\a"
}
if [[ "$TERM" == "xterm" || "$TERM" == "screen" ]]; then
# We can't add this to PROMPT_COMMAND as it would break on child shells which
# don't inherit the parent functions, just call it now
ps_xterm_f
fi
#
# Return a summary string which indicates if any import build affecting variables are set
#
function ps_important_env()
{
extra=""
[ ! -z "$ARCH" ] && extra="${extra}A"
[ ! -z "$CROSS_COMPILE" ] && extra="${extra}C"
[ ! -z "extra" ] && echo "$extra"
}
#
# Update the PS1, with optional tail end
#
function update_ps1()
{
final=$1
if [ -z "$final" ];
then
final="\W"
fi
if [[ "$TERM" == "dumb" || "$TERM" == "vt100" || "$TERM" == "vt102" ]]; then
# Dumb serial line, don't confuse LAVA
export PS1="${ps_user}@\h:\w\\$ "
else
# Setup the prompt to show who I am and on what machine, what processor and my SCM state
export PS1="\A ${ps_user}@\h/${ps_proc} \`ps_important_env\` [$final] >"
fi
}
update_ps1
# Alias for reloading
alias .ps1=". ~/.bash_ps1"