From 87415eb7747c695608a0dc056993a77210fae8fa Mon Sep 17 00:00:00 2001 From: Dmytro Serdiuk Date: Fri, 18 Oct 2019 19:10:48 +0300 Subject: [PATCH] Use original `git`'s exit code when deliver work There is a case when a push does not provide a URL to open. In this case, Elegant Git should continue the flow. But it stops as `[[ ... ]] && ...` construction with a `for` cycle sets exit code 1 if `[[ ... ]]` returns false. That's why a regular `if` used instead. --- libexec/git-elegant-deliver-work | 4 +++- tests/git-elegant-deliver-work.bats | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/libexec/git-elegant-deliver-work b/libexec/git-elegant-deliver-work index ef4f5fa..b3c2af9 100644 --- a/libexec/git-elegant-deliver-work +++ b/libexec/git-elegant-deliver-work @@ -43,7 +43,9 @@ MESSAGE --open-urls-if-possible() { type open >/dev/null 2>&1 || { echo "${1}"; return 0; } for line in ${1}; do - [[ ${line} =~ ^http(.+) ]] && open ${line} + if [[ ${line} =~ (^http)(.+) ]]; then + open ${line} + fi done } diff --git a/tests/git-elegant-deliver-work.bats b/tests/git-elegant-deliver-work.bats index f848d08..9fd0c18 100644 --- a/tests/git-elegant-deliver-work.bats +++ b/tests/git-elegant-deliver-work.bats @@ -65,3 +65,11 @@ teardown() { check git-elegant deliver-work [[ "${status}" -eq 23 ]] } + +@test "'deliver-work': exit 0 if URls are not present in the push output" { + repo "git checkout -b feature1" + fake-pass "git push --set-upstream --force origin feature1:feature1" "Branch 'workflows' set up to track remote branch 'workflows' from 'origin'." + fake "open https://pull/new/some" 23 + check git-elegant deliver-work + [[ "${status}" -eq 0 ]] +}