diff options
author | Marc Cornellà <hello@mcornella.com> | 2021-07-08 16:11:16 +0200 |
---|---|---|
committer | Marc Cornellà <hello@mcornella.com> | 2021-07-08 16:11:16 +0200 |
commit | 36f444ed7325720ec05f182781ec7d6c9a4d675c (patch) | |
tree | f64edf7204949206efd2c22e87169efbc07db786 | |
parent | c44b99e901d7ef58f60247995152de1b937e2e9c (diff) | |
download | zsh-36f444ed7325720ec05f182781ec7d6c9a4d675c.tar.gz zsh-36f444ed7325720ec05f182781ec7d6c9a4d675c.tar.bz2 zsh-36f444ed7325720ec05f182781ec7d6c9a4d675c.zip |
fix(update): fix error exit code on update check (#10033)
This patch removes the 'exit 1' status code when the update check
finishes or is ended with CTRL+C.
Fixes #10033
-rw-r--r-- | tools/check_for_upgrade.sh | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 29a48b880..e87da3487 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -48,14 +48,17 @@ function update_ohmyzsh() { return fi - # Remove lock directory on exit. `return 1` is important for when trapping a SIGINT: + # Remove lock directory on exit. `return $ret` is important for when trapping a SIGINT: # The return status from the function is handled specially. If it is zero, the signal is # assumed to have been handled, and execution continues normally. Otherwise, the shell # will behave as interrupted except that the return status of the trap is retained. + # This means that for a CTRL+C, the trap needs to return the same exit status so that + # the shell actually exits what it's running. trap " - unset -f current_epoch update_last_updated_file update_ohmyzsh - command rm -rf '$ZSH/log/update.lock' - return 1 + ret=\$? + unset -f current_epoch update_last_updated_file update_ohmyzsh 2>/dev/null + command rm -rf '$ZSH/log/update.lock' + return \$ret " EXIT INT QUIT # Create or update .zsh-update file if missing or malformed |