1 | function getGit () {
|
2 | local branch_name=`git branch 2>/dev/null | grep -e '\*' --color=never | sed 's/\* //'`
|
3 | local status=0
|
4 | local timelineSymbol=""
|
5 | local COUNTER=0
|
6 |
|
7 | if [[ $branch_name =~ .+ ]]; then
|
8 |
|
9 | case "$(git status 2>/dev/null | grep -E -o 'nothing|Untracked|Changes|to be committed|Unmerged' | paste -s -d"," -)" in
|
10 | "nothing")
|
11 |
|
12 | case "$(git status 2>/dev/null | grep -E -o 'behind|ahead|diverged' | paste -s -d"," -)" in
|
13 | "behind")
|
14 | timelineSymbol="-"
|
15 | status=-1
|
16 | ;;
|
17 | "ahead")
|
18 | timelineSymbol="+"
|
19 | status=1
|
20 | ;;
|
21 | "diverged")
|
22 | timelineSymbol="!"
|
23 | status=-2
|
24 | ;;
|
25 | *)
|
26 | timelineSymbol=""
|
27 | status=0
|
28 | ;;
|
29 | esac
|
30 |
|
31 | ;;
|
32 | 'Untracked' | 'Untracked,nothing' | 'Unmerged' | 'Unmerged,Untracked')
|
33 | status=2
|
34 | timelineSymbol+="*"
|
35 | ;;
|
36 | 'Changes,to be committed')
|
37 | status=3
|
38 | ;;
|
39 | 'Changes,Untracked' | 'Changes,to be committed,Changes,Untracked' | 'Changes,to be committed,Untracked')
|
40 | status=4
|
41 | timelineSymbol+="*"
|
42 | ;;
|
43 | *)
|
44 | COUNTER=-5
|
45 | status=5
|
46 | ;;
|
47 | esac
|
48 |
|
49 | echo -ne "$branch_name@@@$status@@@$timelineSymbol"
|
50 | else
|
51 | echo -ne "@@@"
|
52 | fi
|
53 | }
|