diff options
-rw-r--r-- | README.md | 13 | ||||
-rwxr-xr-x | git-radar | 5 | ||||
-rwxr-xr-x | prompt.bash | 5 | ||||
-rwxr-xr-x | prompt.zsh | 5 | ||||
-rwxr-xr-x | radar-base.sh | 8 | ||||
-rwxr-xr-x | test | 1 | ||||
-rwxr-xr-x | test-radar-base.sh | 28 |
7 files changed, 61 insertions, 4 deletions
@@ -115,6 +115,19 @@ Prompt | Meaning ![git:(m 4 → my-branch)] | There are 4 commits on `origin/master` that aren't on `origin/my-branch` ![git:(m 1 ⇄ 2 my-branch)] | `origin/master` and `origin/my-branch` have diverged, we'll need to rebase or merge +If you don't rely on this status, you can always hide this part of the prompt by calling git-radar with `--no-remote-status`. + +**Bash** +```bash +export PS1="$PS1\$(git-radar --bash --fetch --no-remote-status) " +``` +(note: the `\` escaping the `$` is important) + +**Zsh** +```zsh +export PROMPT="$PROMPT$(git-radar --zsh --fetch --no-remote-status) " +``` + ### (Optional) Auto-fetch repos Ensuring your refs are up to date I found can be a pain. To streamline this @@ -11,6 +11,7 @@ else fi dot="$(cd "$(dirname "$([ -L "$0" ] && $READLINK_CMD -f "$0" || echo "$0")")"; pwd)" +args=$@ if [[ -z $@ ]]; then _git="\033[1;30mgit:(\033[0m" @@ -92,9 +93,9 @@ while [[ $# > 0 ]];do nohup $dot/fetch.sh >/dev/null 2>&1 & fi if [[ "$command" == "--zsh" ]]; then - $dot/prompt.zsh + $dot/prompt.zsh $args fi if [[ "$command" == "--bash" || "$command" == "--fish" ]]; then - $dot/prompt.bash + $dot/prompt.bash $args fi done diff --git a/prompt.bash b/prompt.bash index a3fe420..429c88d 100755 --- a/prompt.bash +++ b/prompt.bash @@ -1,11 +1,14 @@ #! /usr/bin/env bash dot="$(cd "$(dirname "$0")"; pwd)" +args=$@ source "$dot/radar-base.sh" if is_repo; then printf " \x01\033[1;30m\x02git:(\x01\033[0m\x02" - bash_color_remote_commits + if show_remote_status $args; then + bash_color_remote_commits + fi readable_branch_name bash_color_local_commits printf "\x01\033[1;30m\x02)\x01\033[0m\x02" @@ -1,12 +1,15 @@ #! /usr/bin/env zsh dot="$(cd "$(dirname "$0")"; pwd)" +args=$@ source "$dot/radar-base.sh" if is_repo; then autoload colors && colors printf '%s' "%{$fg_bold[black]%} git:(%{$reset_color%}" - zsh_color_remote_commits + if show_remote_status $args; then + zsh_color_remote_commits + fi readable_branch_name zsh_color_local_commits printf '%s' "%{$fg_bold[black]%})%{$reset_color%}" diff --git a/radar-base.sh b/radar-base.sh index b7074d8..d019629 100755 --- a/radar-base.sh +++ b/radar-base.sh @@ -1,3 +1,5 @@ +NO_REMOTE_STATUS='--no-remote-status' + dot_git="" cwd="" remote="" @@ -469,3 +471,9 @@ zsh_color_remote_commits() { printf %s "$remote" } +show_remote_status() { + if [[ $@ == *$NO_REMOTE_STATUS* ]]; then + return 1 # don't show the git remote status + fi + return 0 +} @@ -1,5 +1,6 @@ #!/bin/sh +./test-radar-base.sh ./test-directories.sh ./test-commits.sh ./test-branches.sh diff --git a/test-radar-base.sh b/test-radar-base.sh new file mode 100755 index 0000000..9f7f8ee --- /dev/null +++ b/test-radar-base.sh @@ -0,0 +1,28 @@ +scriptDir="$(cd "$(dirname "$0")"; pwd)" + +source "$scriptDir/radar-base.sh" + +test_show_remote_status() { + show_remote_status + assertTrue $? + + show_remote_status --bash + assertTrue $? + + show_remote_status --bash --fetch + assertTrue $? + + show_remote_status --bash --no-remote-status --fetch + assertFalse $? + + show_remote_status --bash --fetch --no-remote-status + assertFalse $? + + show_remote_status --no-remote-status --bash --fetch + assertFalse $? + + show_remote_status --bash --fetch --minimal --no-remote-status + assertFalse $? +} + +. ./shunit/shunit2
\ No newline at end of file |