From 253e0090fb62f0a130c48e1f965749827db213ab Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Tue, 11 Aug 2015 19:54:34 +0100 Subject: Example of how to use the git-base.sh library --- git-base.sh | 25 +++++++++++++++++++++++++ prompt | 21 +++++++++++++++++++++ prompt.sh | 6 ------ 3 files changed, 46 insertions(+), 6 deletions(-) create mode 100755 prompt delete mode 100755 prompt.sh 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" +} diff --git a/prompt b/prompt new file mode 100755 index 0000000..6d5c71d --- /dev/null +++ b/prompt @@ -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 -- cgit v1.2.3