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  | 
