浏览代码

fix(update): don't error on upgrade no-op (#9685)

* Don't error on upgrade no-op

No error code is required for a non failure scenario.

* Manually check whether changes were pulled in `omz update`

Co-authored-by: Marc Cornellà <hello@mcornella.com>
Cai Cooper 3 年之前
父节点
当前提交
6fbad5bf72
共有 3 个文件被更改,包括 5 次插入6 次删除
  1. 4 3
      lib/cli.zsh
  2. 1 2
      tools/check_for_upgrade.sh
  3. 0 1
      tools/upgrade.sh

+ 4 - 3
lib/cli.zsh

@@ -401,13 +401,14 @@ function _omz::theme::use {
 }
 
 function _omz::update {
+  local last_commit=$(cd "$ZSH"; git rev-parse HEAD)
+
   # Run update script
   if [[ "$1" != --unattended ]]; then
     ZSH="$ZSH" zsh -f "$ZSH/tools/upgrade.sh" --interactive
   else
     ZSH="$ZSH" zsh -f "$ZSH/tools/upgrade.sh"
   fi
-  local ret=$?
 
   # Update last updated file
   zmodload zsh/datetime
@@ -415,8 +416,8 @@ function _omz::update {
   # Remove update lock if it exists
   command rm -rf "$ZSH/log/update.lock"
 
-  # Restart the zsh session
-  if [[ $ret -eq 0 && "$1" != --unattended ]]; then
+  # Restart the zsh session if there were changes
+  if [[ "$1" != --unattended && "$(cd "$ZSH"; git rev-parse HEAD)" != "$last_commit" ]]; then
     # Old zsh versions don't have ZSH_ARGZERO
     local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}"
     # Check whether to run a login shell

+ 1 - 2
tools/check_for_upgrade.sh

@@ -24,8 +24,7 @@ function update_last_updated_file() {
 }
 
 function update_ohmyzsh() {
-  ZSH="$ZSH" zsh -f "$ZSH/tools/upgrade.sh" --interactive
-  if [[ "$?" = (0|80) ]]; then
+  if ZSH="$ZSH" zsh -f "$ZSH/tools/upgrade.sh" --interactive; then
     update_last_updated_file
   fi
 }

+ 0 - 1
tools/upgrade.sh

@@ -66,7 +66,6 @@ if git pull --rebase --stat origin master; then
   # Check if it was really updated or not
   if [[ "$(git rev-parse HEAD)" = "$last_commit" ]]; then
     message="Oh My Zsh is already at the latest version."
-    ret=80 # non-zero exit code to indicate no changes pulled
   else
     message="Hooray! Oh My Zsh has been updated!"