1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,58 @@ |
0 |
+function my_git_prompt() { |
|
1 |
+ tester=$(git rev-parse --git-dir 2> /dev/null) || return |
|
2 |
+ |
|
3 |
+ INDEX=$(git status --porcelain 2> /dev/null) |
|
4 |
+ STATUS="" |
|
5 |
+ |
|
6 |
+ # is branch ahead? |
|
7 |
+ if $(echo "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then |
|
8 |
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_AHEAD" |
|
9 |
+ fi |
|
10 |
+ |
|
11 |
+ # is anything staged? |
|
12 |
+ if $(echo "$INDEX" | grep -E -e '^(D[ M]|[MARC][ MD]) ' &> /dev/null); then |
|
13 |
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STAGED" |
|
14 |
+ fi |
|
15 |
+ |
|
16 |
+ # is anything unstaged? |
|
17 |
+ if $(echo "$INDEX" | grep -E -e '^[ MARC][MD] ' &> /dev/null); then |
|
18 |
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNSTAGED" |
|
19 |
+ fi |
|
20 |
+ |
|
21 |
+ # is anything untracked? |
|
22 |
+ if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then |
|
23 |
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED" |
|
24 |
+ fi |
|
25 |
+ |
|
26 |
+ # is anything unmerged? |
|
27 |
+ if $(echo "$INDEX" | grep -E -e '^(A[AU]|D[DU]|U[ADU]) ' &> /dev/null); then |
|
28 |
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNMERGED" |
|
29 |
+ fi |
|
30 |
+ |
|
31 |
+ if [[ -n $STATUS ]]; then |
|
32 |
+ STATUS=" $STATUS" |
|
33 |
+ fi |
|
34 |
+ |
|
35 |
+ echo "$ZSH_THEME_GIT_PROMPT_PREFIX$(my_current_branch)$STATUS$ZSH_THEME_GIT_PROMPT_SUFFIX" |
|
36 |
+} |
|
37 |
+ |
|
38 |
+function my_current_branch() { |
|
39 |
+ echo $(current_branch || echo "(no branch)") |
|
40 |
+} |
|
41 |
+ |
|
42 |
+function ssh_connection() { |
|
43 |
+ if [[ -n $SSH_CONNECTION ]]; then |
|
44 |
+ echo "%{$fg_bold[red]%}(ssh) " |
|
45 |
+ fi |
|
46 |
+} |
|
47 |
+ |
|
48 |
+PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n%# ' |
|
49 |
+ |
|
50 |
+ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}" |
|
51 |
+ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}" |
|
52 |
+ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg_bold[magenta]%}↑" |
|
53 |
+ZSH_THEME_GIT_PROMPT_STAGED="%{$fg_bold[green]%}●" |
|
54 |
+ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg_bold[red]%}●" |
|
55 |
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[white]%}●" |
|
56 |
+ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg_bold[red]%}✕" |
|
57 |
+ZSH_THEME_GIT_PROMPT_SUFFIX=" $fg_bold[white]›%{$reset_color%}" |