aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpowerlevel9k.zsh-theme4
-rwxr-xr-xtest/segments/go_version.spec46
2 files changed, 48 insertions, 2 deletions
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index caa42fde..666ce965 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -841,9 +841,11 @@ prompt_docker_machine() {
# GO prompt
prompt_go_version() {
local go_version
+ local go_path
go_version=$(go version 2>/dev/null | sed -E "s/.*(go[0-9.]*).*/\1/")
+ go_path=$(go env GOPATH 2>/dev/null)
- if [[ -n "$go_version" ]]; then
+ if [[ -n "$go_version" && "${PWD##$go_path}" != "$PWD" ]]; then
"$1_prompt_segment" "$0" "$2" "green" "255" "$go_version"
fi
}
diff --git a/test/segments/go_version.spec b/test/segments/go_version.spec
index aa9f625d..907dceb3 100755
--- a/test/segments/go_version.spec
+++ b/test/segments/go_version.spec
@@ -12,19 +12,63 @@ function setUp() {
}
function mockGo() {
- echo 'go version go1.5.3 darwin/amd64'
+ case "$1" in
+ 'version')
+ echo 'go version go1.5.3 darwin/amd64'
+ ;;
+ 'env')
+ echo "$HOME/go"
+ ;;
+ esac
+}
+
+function mockGoEmptyGopath() {
+ case "$1" in
+ 'version')
+ echo 'go version go1.5.3 darwin/amd64'
+ ;;
+ 'env')
+ echo ""
+ ;;
+ esac
}
function testGo() {
alias go=mockGo
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(go_version)
+ PWD="$HOME/go/src/github.com/bhilburn/powerlevel9k"
+
assertEquals "%K{green} %F{255}go1.5.3 %k%F{green}%f " "$(build_left_prompt)"
+ unset PWD
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
unalias go
}
+function testGoSegmentPrintsNothingIfEmptyGopath() {
+ alias go=mockGoEmptyGopath
+ POWERLEVEL9K_CUSTOM_WORLD='echo world'
+ POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world go_version)
+
+ assertEquals "%K{white} %F{black}world %k%F{white}%f " "$(build_left_prompt)"
+
+ unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
+ unset POWERLEVEL9K_CUSTOM_WORLD
+
+}
+
+function testGoSegmentPrintsNothingIfNotInGopath() {
+ alias go=mockGo
+ POWERLEVEL9K_CUSTOM_WORLD='echo world'
+ POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_world go_version)
+
+ assertEquals "%K{white} %F{black}world %k%F{white}%f " "$(build_left_prompt)"
+
+ unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
+ unset POWERLEVEL9K_CUSTOM_WORLD
+}
+
function testGoSegmentPrintsNothingIfGoIsNotAvailable() {
alias go=noGo
POWERLEVEL9K_CUSTOM_WORLD='echo world'