summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Allen <michael@michaelallen.io>2015-09-16 15:29:05 +0100
committerMichael Allen <michael@michaelallen.io>2015-09-16 15:29:05 +0100
commit1f6a8f84946a0cb6936916f47b5a3870fa12a5a6 (patch)
tree71fe36a68b756540e35e996d6a602581c5391d86
parent1fcd42c3ecc41b6a6c4c9e75b6bfe274a1b595e2 (diff)
parenteb9c08b9b0e05ca2aaf958e34979f6ae58af4e61 (diff)
downloadgit-sonar-1f6a8f84946a0cb6936916f47b5a3870fa12a5a6.tar.gz
git-sonar-1f6a8f84946a0cb6936916f47b5a3870fa12a5a6.zip
Merge pull request #63 from michaeldfallen/merge-render-functions
Merge render functions
Diffstat (limited to '')
-rwxr-xr-xprompt.bash8
-rwxr-xr-xprompt.zsh8
-rwxr-xr-xradar-base.sh122
-rwxr-xr-xtest-branches.sh1
-rwxr-xr-xtest-colors.sh7
-rwxr-xr-xtest-commits.sh5
6 files changed, 58 insertions, 93 deletions
diff --git a/prompt.bash b/prompt.bash
index 264ea7b..51c4db7 100755
--- a/prompt.bash
+++ b/prompt.bash
@@ -8,10 +8,10 @@ if is_repo; then
prepare_bash_colors
printf " \x01\033[1;30m\x02git:(\x01\033[0m\x02"
if show_remote_status $args; then
- bash_color_remote_commits
+ color_remote_commits
fi
- bash_readable_branch_name
- bash_color_local_commits
+ readable_branch_name
+ color_local_commits
printf "\x01\033[1;30m\x02)\x01\033[0m\x02"
- bash_color_changes_status
+ color_changes_status
fi
diff --git a/prompt.zsh b/prompt.zsh
index 5a7cb40..2d31820 100755
--- a/prompt.zsh
+++ b/prompt.zsh
@@ -10,10 +10,10 @@ if is_repo; then
prepare_zsh_colors
printf '%s' "%{$fg_bold[black]%} git:(%{$reset_color%}"
if show_remote_status $args; then
- zsh_color_remote_commits
+ color_remote_commits
fi
- zsh_readable_branch_name
- zsh_color_local_commits
+ readable_branch_name
+ color_local_commits
printf '%s' "%{$fg_bold[black]%})%{$reset_color%}"
- zsh_color_changes_status
+ color_changes_status
fi
diff --git a/radar-base.sh b/radar-base.sh
index 2ad9ce7..d9cd8f5 100755
--- a/radar-base.sh
+++ b/radar-base.sh
@@ -12,6 +12,8 @@ prepare_bash_colors() {
source "$rcfile_path/.gitradarrc"
fi
+ PRINT_F_OPTION=""
+
COLOR_REMOTE_AHEAD="\x01${GIT_RADAR_COLOR_REMOTE_AHEAD:-"\\033[1;32m"}\x02"
COLOR_REMOTE_BEHIND="\x01${GIT_RADAR_COLOR_REMOTE_BEHIND:-"\\033[1;31m"}\x02"
COLOR_REMOTE_DIVERGED="\x01${GIT_RADAR_COLOR_REMOTE_DIVERGED:-"\\033[1;33m"}\x02"
@@ -42,6 +44,8 @@ prepare_zsh_colors() {
source "$rcfile_path/.gitradarrc"
fi
+ PRINT_F_OPTION="%s"
+
COLOR_REMOTE_AHEAD="%{${GIT_RADAR_COLOR_REMOTE_AHEAD:-$fg_bold[green]}%}"
COLOR_REMOTE_BEHIND="%{${GIT_RADAR_COLOR_REMOTE_BEHIND:-$fg_bold[red]}%}"
COLOR_REMOTE_DIVERGED="%{${GIT_RADAR_COLOR_REMOTE_DIVERGED:-$fg_bold[yellow]}%}"
@@ -180,18 +184,6 @@ branch_ref() {
fi
}
-zsh_readable_branch_name() {
- if is_repo; then
- printf '%s' "$COLOR_BRANCH$(branch_name || printf '%s' "detached@$(commit_short_sha)")$RESET_COLOR_BRANCH"
- fi
-}
-
-bash_readable_branch_name() {
- if is_repo; then
- printf "$COLOR_BRANCH$(branch_name || printf '%s' "detached@$(commit_short_sha)")$RESET_COLOR_BRANCH"
- fi
-}
-
remote_branch_name() {
local localRef="\/$(branch_name)$"
if [[ -n "$localRef" ]]; then
@@ -369,7 +361,7 @@ untracked_status() {
printf '%s' "$untracked_string"
}
-bash_color_changes_status() {
+color_changes_status() {
local separator="${1:- }"
local porcelain="$(porcelain_status)"
@@ -398,42 +390,18 @@ bash_color_changes_status() {
changes="$staged_changes$conflicted_changes$unstaged_changes$untracked_changes"
fi
- printf "$changes"
+ printf $PRINT_F_OPTION "$changes"
}
-zsh_color_changes_status() {
- local separator="${1:- }"
-
- local porcelain="$(porcelain_status)"
- local changes=""
-
- if [[ -n "$porcelain" ]]; then
- local staged_changes="$(staged_status "$porcelain" "$COLOR_CHANGES_STAGED" "$RESET_COLOR_CHANGES")"
- local unstaged_changes="$(unstaged_status "$porcelain" "$COLOR_CHANGES_UNSTAGED" "$RESET_COLOR_CHANGES")"
- local untracked_changes="$(untracked_status "$porcelain" "$COLOR_CHANGES_UNTRACKED" "$RESET_COLOR_CHANGES")"
- local conflicted_changes="$(conflicted_status "$porcelain" "$COLOR_CHANGES_CONFLICTED" "$RESET_COLOR_CHANGES")"
- if [[ -n "$staged_changes" ]]; then
- staged_changes="$separator$staged_changes"
- fi
-
- if [[ -n "$unstaged_changes" ]]; then
- unstaged_changes="$separator$unstaged_changes"
- fi
-
- if [[ -n "$conflicted_changes" ]]; then
- conflicted_changes="$separator$conflicted_changes"
- fi
-
- if [[ -n "$untracked_changes" ]]; then
- untracked_changes="$separator$untracked_changes"
- fi
+bash_color_changes_status() {
+ color_changes_status
+}
- changes="$staged_changes$conflicted_changes$unstaged_changes$untracked_changes"
- fi
- printf %s "$changes"
+zsh_color_changes_status() {
+ color_changes_status
}
-bash_color_local_commits() {
+color_local_commits() {
local separator="${1:- }"
local green_ahead_arrow="${COLOR_LOCAL_AHEAD}↑$RESET_COLOR_LOCAL"
@@ -453,33 +421,18 @@ bash_color_local_commits() {
local_commits="$separator$local_ahead$green_ahead_arrow"
fi
fi
- printf "$local_commits"
+ printf $PRINT_F_OPTION "$local_commits"
}
-zsh_color_local_commits() {
- local separator="${1:- }"
-
- local ahead_arrow="${COLOR_LOCAL_AHEAD}↑$RESET_COLOR_LOCAL"
- local behind_arrow="${COLOR_LOCAL_BEHIND}↓$RESET_COLOR_LOCAL"
- local diverged_arrow="${COLOR_LOCAL_DIVERGED}⇵$RESET_COLOR_LOCAL"
-
- local local_commits=""
- if remote_branch="$(remote_branch_name)"; then
- local_ahead="$(commits_ahead_of_remote "$remote_branch")"
- local_behind="$(commits_behind_of_remote "$remote_branch")"
+bash_color_local_commits() {
+ color_local_commits
+}
- if [[ "$local_behind" -gt "0" && "$local_ahead" -gt "0" ]]; then
- local_commits="$separator$local_behind$diverged_arrow$local_ahead"
- elif [[ "$local_behind" -gt "0" ]]; then
- local_commits="$separator$local_behind$behind_arrow"
- elif [[ "$local_ahead" -gt "0" ]]; then
- local_commits="$separator$local_ahead$ahead_arrow"
- fi
- fi
- printf %s "$local_commits"
+zsh_color_local_commits() {
+ color_local_commits
}
-bash_color_remote_commits() {
+color_remote_commits() {
local green_ahead_arrow="${COLOR_REMOTE_AHEAD}←$RESET_COLOR_REMOTE"
local red_behind_arrow="${COLOR_REMOTE_BEHIND}→$RESET_COLOR_REMOTE"
local yellow_diverged_arrow="${COLOR_REMOTE_DIVERGED}⇄$RESET_COLOR_REMOTE"
@@ -500,32 +453,31 @@ bash_color_remote_commits() {
remote="upstream $not_upstream "
fi
- printf "$remote"
+ printf $PRINT_F_OPTION "$remote"
}
-zsh_color_remote_commits() {
- local green_ahead_arrow="${COLOR_REMOTE_AHEAD}←$RESET_COLOR_REMOTE"
- local red_behind_arrow="${COLOR_REMOTE_BEHIND}→$RESET_COLOR_REMOTE"
- local yellow_diverged_arrow="${COLOR_REMOTE_DIVERGED}⇄$RESET_COLOR_REMOTE"
- local not_upstream="${COLOR_REMOTE_NOT_UPSTREAM}⚡$RESET_COLOR_REMOTE"
+bash_color_remote_commits() {
+ color_remote_commits
+}
- if remote_branch="$(remote_branch_name)"; then
- remote_ahead="$(remote_ahead_of_master "$remote_branch")"
- remote_behind="$(remote_behind_of_master "$remote_branch")"
+zsh_color_remote_commits() {
+ color_remote_commits
+}
- if [[ "$remote_behind" -gt "0" && "$remote_ahead" -gt "0" ]]; then
- remote="$MASTER_SYMBOL $remote_behind $yellow_diverged_arrow $remote_ahead "
- elif [[ "$remote_ahead" -gt "0" ]]; then
- remote="$MASTER_SYMBOL $green_ahead_arrow $remote_ahead "
- elif [[ "$remote_behind" -gt "0" ]]; then
- remote="$MASTER_SYMBOL $remote_behind $red_behind_arrow "
- fi
- else
- remote="upstream $not_upstream "
+readable_branch_name() {
+ if is_repo; then
+ printf $PRINT_F_OPTION "$COLOR_BRANCH$(branch_name || printf '%s' "detached@$(commit_short_sha)")$RESET_COLOR_BRANCH"
fi
+}
- printf %s "$remote"
+zsh_readable_branch_name() {
+ readable_branch_name
}
+
+bash_readable_branch_name() {
+ readable_branch_name
+}
+
show_remote_status() {
if [[ $@ == *$NO_REMOTE_STATUS* ]]; then
return 1 # don't show the git remote status
diff --git a/test-branches.sh b/test-branches.sh
index f380a2d..5c33d23 100755
--- a/test-branches.sh
+++ b/test-branches.sh
@@ -56,6 +56,7 @@ test_detached_from_branch() {
assertEquals "$sha" "$(branch_ref)"
assertEquals "detached@$sha" "$(zsh_readable_branch_name)"
assertEquals "detached@$sha" "$(bash_readable_branch_name)"
+ assertEquals "detached@$sha" "$(readable_branch_name)"
rm_tmp
}
diff --git a/test-colors.sh b/test-colors.sh
index 59a8704..73c20f7 100755
--- a/test-colors.sh
+++ b/test-colors.sh
@@ -293,12 +293,14 @@ test_bash_colors_local() {
printf -v expected " 1\x01local-ahead\x02↑\x01local-reset\x02"
assertEquals "$expected" "$(bash_color_local_commits)"
+ assertEquals "$expected" "$(color_local_commits)"
git push --quiet >/dev/null
git reset --hard head^ --quiet >/dev/null
printf -v expected " 1\x01local-behind\x02↓\x01local-reset\x02"
assertEquals "$expected" "$(bash_color_local_commits)"
+ assertEquals "$expected" "$(color_local_commits)"
echo "foo" > foo
git add .
@@ -306,6 +308,7 @@ test_bash_colors_local() {
printf -v expected " 1\x01local-diverged\x02⇵\x01local-reset\x021"
assertEquals "$expected" "$(bash_color_local_commits)"
+ assertEquals "$expected" "$(color_local_commits)"
rm_tmp
}
@@ -379,6 +382,7 @@ test_bash_colors_remote() {
printf -v expected "m 1 \x01remote-behind\x02→\x01remote-reset\x02 "
assertEquals "$expected" "$(bash_color_remote_commits)"
+ assertEquals "$expected" "$(color_remote_commits)"
echo "bar" > bar
git add .
@@ -387,12 +391,14 @@ test_bash_colors_remote() {
printf -v expected "m 1 \x01remote-diverged\x02⇄\x01remote-reset\x02 1 "
assertEquals "$expected" "$(bash_color_remote_commits)"
+ assertEquals "$expected" "$(color_remote_commits)"
git pull origin master --quiet >/dev/null
git push --quiet >/dev/null
printf -v expected "m \x01remote-ahead\x02←\x01remote-reset\x02 2 "
assertEquals "$expected" "$(bash_color_remote_commits)"
+ assertEquals "$expected" "$(color_remote_commits)"
rm_tmp
}
@@ -459,6 +465,7 @@ test_bash_colors_changes() {
printf -v expected " $staged $unstaged $untracked"
assertEquals "$expected" "$(bash_color_changes_status)"
+ assertEquals "$expected" "$(color_changes_status)"
rm_tmp
}
diff --git a/test-commits.sh b/test-commits.sh
index 8aa2da2..1a4a86c 100755
--- a/test-commits.sh
+++ b/test-commits.sh
@@ -378,6 +378,7 @@ test_local_commits() {
assertEquals "" "$(zsh_color_local_commits)"
assertEquals "" "$(bash_color_local_commits)"
+ assertEquals "" "$(color_local_commits)"
git init --quiet
touch README
@@ -394,6 +395,7 @@ test_local_commits() {
assertEquals "" "$(zsh_color_local_commits)"
assertEquals "" "$(bash_color_local_commits)"
+ assertEquals "" "$(color_local_commits)"
cd "$repo"
echo "bar" > bar
@@ -402,6 +404,7 @@ test_local_commits() {
assertEquals " 1$up" "$(zsh_color_local_commits)"
assertEquals " 1$up" "$(bash_color_local_commits)"
+ assertEquals " 1$up" "$(color_local_commits)"
cd "$remote"
echo "foo" > foo
@@ -413,11 +416,13 @@ test_local_commits() {
assertEquals " 1${both}1" "$(zsh_color_local_commits)"
assertEquals " 1${both}1" "$(bash_color_local_commits)"
+ assertEquals " 1${both}1" "$(color_local_commits)"
git reset --hard HEAD^ --quiet
assertEquals " 1$down" "$(zsh_color_local_commits)"
assertEquals " 1$down" "$(bash_color_local_commits)"
+ assertEquals " 1$down" "$(color_local_commits)"
}
. ./shunit/shunit2