forked from vitorleal/dotfiles
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.bash_prompt
More file actions
68 lines (55 loc) · 1.98 KB
/
.bash_prompt
File metadata and controls
68 lines (55 loc) · 1.98 KB
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
if [[ $COLORTERM = gnome-* && $TERM = xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then
export TERM='gnome-256color';
elif infocmp xterm-256color >/dev/null 2>&1; then
export TERM='xterm-256color';
fi;
if tput setaf 1 &> /dev/null; then
tput sgr0
if [[ $(tput colors) -ge 256 ]] 2>/dev/null; then
MAGENTA=$(tput setaf 9);
ORANGE=$(tput setaf 172);
YELLOW=$(tput setaf 3);
PURPLE=$(tput setaf 141);
WHITE=$(tput setaf 256);
GREEN=$(tput setaf 2);
else
MAGENTA=$(tput setaf 5);
ORANGE=$(tput setaf 2);
YELLOW=$(tput setaf 3);
PURPLE=$(tput setaf 4);
WHITE=$(tput setaf 7);
GREEN=$(tput setaf 2);
fi;
BOLD=$(tput bold);
RESET=$(tput sgr0);
else
MAGENTA="\033[1;31m";
ORANGE="\033[1;33m";
YELLOW="\033[1;32m";
PURPLE="\033[1;35m";
WHITE="\033[1;37m";
GREEN="\033[1;31m";
BOLD="";
RESET="\033[m";
fi;
# Check if branch has changes
function parse_git_dirty() {
[[ $(git status 2> /dev/null | tail -n 1 | grep -i -v 'nothing' | wc -l | tr -s " ") == " 1" ]] && echo "(+) "
}
# Check if branch is ahead of remote
function parse_branch_ahead() {
[[ $(git status -sb 2> /dev/null | grep -i 'ahead' | wc -l | tr -s " ") == " 1" ]] && echo "[⇡ ahead] "
}
# Check if branch is behind of remote
function parse_branch_behind() {
[[ $(git status -sb 2> /dev/null | grep -i 'behind' | wc -l | tr -s " ") == " 1" ]] && echo "[⇣ behind]"
}
# Chech whitch branch we are
function parse_git_branch() {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/{\1}/"
}
PS2="\[$YELLOW\]⚡ ➜ \[$RESET\]";
PS1="\[\e]2;$PWD\[\a\]\[\e]1;\]$(basename "$(dirname "$PWD")")/\W\[\a\]";
PS1+="\[${BOLD}${MAGENTA}\]\u\[$WHITE\]@\[$ORANGE\]\h \[$WHITE\]in ";
PS1+="\[$YELLOW\]\w\[$WHITE\]\$([[ -n \$(git branch 2> /dev/null) ]] && echo \" on \")";
PS1+="\[$PURPLE\]\$(parse_git_branch)\[$RESET\] \[$GREEN\]\$(parse_git_dirty)\[$RESET\]\[$GREEN\]\$(parse_branch_ahead)\[$RESET\]\[$MAGENTA\]\$(parse_branch_behind)\[$RESET\]\n$PS2";