diff options
-rwxr-xr-x | git-base.sh | 25 | ||||
-rwxr-xr-x | prompt | 21 | ||||
-rwxr-xr-x | prompt.sh | 6 |
3 files changed, 46 insertions, 6 deletions
diff --git a/git-base.sh b/git-base.sh index 87ad2cc..81616a5 100755 --- a/git-base.sh +++ b/git-base.sh @@ -444,3 +444,28 @@ bash_color_remote_commits() { printf %s "$remote" } + +zsh_color_remote_commits() { + local remote_master="\xF0\x9D\x98\xAE" # an italic m to represent master + local green_ahead_arrow="%{$fg_bold[green]%}←%{$reset_color%}" + local red_behind_arrow="%{$fg_bold[red]%}→%{$reset_color%}" + local yellow_diverged_arrow="%{$fg_bold[yellow]%}⇄%{$reset_color%}" + local not_upstream="%{$fg_bold[red]%}⚡%{$reset_color%}" + + if remote_branch="$(remote_branch_name)"; then + remote_ahead="$(remote_ahead_of_master "$remote_branch")" + remote_behind="$(remote_behind_of_master "$remote_branch")" + + if [[ "$remote_behind" -gt "0" && "$remote_ahead" -gt "0" ]]; then + remote="$remote_master $remote_behind $yellow_diverged_arrow $remote_ahead " + elif [[ "$remote_ahead" -gt "0" ]]; then + remote="$remote_master $green_ahead_arrow $remote_ahead " + elif [[ "$remote_behind" -gt "0" ]]; then + remote="$remote_master $remote_behind $red_behind_arrow " + fi + else + remote="upstream $not_upstream " + fi + + printf %s "$remote" +} @@ -0,0 +1,21 @@ +dot="$(cd "$(dirname "$0")"; pwd)" +source "$dot/git-base.sh" + +command="$1" + +if [[ "$command" == "--zsh" ]]; then + git_prefix="%{$fg_bold[black]%}git:(%{$reset_color}" + git_suffix="%{$fg_bold[black]%})%{$reset_color}" + printf '%s' $git_prefix + zsh_color_remote_commits + branch_name + zsh_color_local_commits + printf '%s' $git_suffix + zsh_color_changes_status +fi + +if [[ "$command" == "--bash" || "$command" == "" ]]; then + git_prefix="\033[1;30mgit:(\033[0m" + git_suffix="\033[1;30m)\033[0m" + echo "$git_prefix$(bash_color_remote_commits;readable_branch_name;bash_color_local_commits)$git_suffix$(bash_color_changes_status)" +fi diff --git a/prompt.sh b/prompt.sh deleted file mode 100755 index 4501575..0000000 --- a/prompt.sh +++ /dev/null @@ -1,6 +0,0 @@ -dot="$(cd "$(dirname "$0")"; pwd)" -source "$dot/git-base.sh" - -prompt="$(bash_color_remote_commits)$(branch_name)$(bash_color_local_commits)$(bash_color_changes_status)" - -echo $prompt |