Browse Source

fix(cli): fix `commit.gpgsign` test in `omz pr test`

Since `set -e` is enabled, when `commit.gpgsign` is not set the
`git config` command would show an error. Given that it is technically
not ignored, the subshell would exit.

With this change, the `commit.gpgsign` setting is properly tested
by doing the fallback test if the command fails, so no exit status
code ends up quiting the subshell.
Marc Cornellà 2 years ago
parent
commit
f1a5fb5ee9
1 changed files with 3 additions and 2 deletions
  1. 3 2
      lib/cli.zsh

+ 3 - 2
lib/cli.zsh

@@ -578,8 +578,9 @@ function _omz::pr::test {
       # Back up commit.gpgsign setting: use --local to get the current repository
       # setting, not the global one. If --local is not a known option, it will
       # exit with a 129 status code.
-      gpgsign=$(command git config --local commit.gpgsign 2>/dev/null)
-      [[ $? -ne 129 ]] || gpgsign=$(command git config commit.gpgsign 2>/dev/null)
+      if ! gpgsign=$(command git config --local commit.gpgsign 2>/dev/null); then
+        [[ $? -ne 129 ]] || gpgsign=$(command git config commit.gpgsign 2>/dev/null)
+      fi
       command git config commit.gpgsign false
 
       command git rebase master ohmyzsh/pull-$1 || {