From 6b40c172f04036931886a92c200197ef7bd9917f Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Thu, 6 Aug 2015 09:58:13 +0100 Subject: Provide bash colors for local commit diffs --- git-base.sh | 26 ++++++++++++++++++++++++++ prompt.sh | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/git-base.sh b/git-base.sh index aca271b..afd4f7e 100755 --- a/git-base.sh +++ b/git-base.sh @@ -370,6 +370,32 @@ zsh_color_changes_status() { echo $changes } +bash_color_local_commits() { + local green_ahead_arrow="\033[1;32m↑\033[0m" + local red_behind_arrow="\033[1;31m↓\033[0m" + local yellow_diverged_arrow="\033[1;33m⇵\033[0m" + + local local_commits="" + if is_repo; then + + if remote_branch="$(remote_branch_name)"; then + local_ahead="$(commits_ahead_of_remote "$remote_branch")" + local_behind="$(commits_behind_of_remote "$remote_branch")" + remote_ahead="$(remote_ahead_of_master "$remote_branch")" + remote_behind="$(remote_behind_of_master "$remote_branch")" + + if [[ "$local_behind" -gt "0" && "$local_ahead" -gt "0" ]]; then + local_commits=" $local_behind$yellow_diverged_arrow$local_ahead" + elif [[ "$local_behind" -gt "0" ]]; then + local_commits=" $local_behind$red_behind_arrow" + elif [[ "$local_ahead" -gt "0" ]]; then + local_commits=" $local_ahead$green_ahead_arrow" + fi + fi + fi + echo $local_commits +} + zsh_color_local_commits() { local ahead_arrow="%{$fg_bold[green]%}↑%{$reset_color%}" local behind_arrow="%{$fg_bold[red]%}↓%{$reset_color%}" diff --git a/prompt.sh b/prompt.sh index 5fd8b27..056a74f 100755 --- a/prompt.sh +++ b/prompt.sh @@ -18,6 +18,6 @@ else local_behind="" fi -prompt="$(branch_name) $(zsh_color_local_commits) $(bash_color_changes_status)" +prompt="$(branch_name) $(bash_color_local_commits) $(bash_color_changes_status)" echo $prompt -- cgit v1.2.3