diff --git a/lib/cli.zsh b/lib/cli.zsh index 3c09cdab8..d8203f271 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -201,10 +201,14 @@ function _omz::pr::test { } function _omz::update { + # Run update script env ZSH="$ZSH" sh "$ZSH/tools/upgrade.sh" # Update last updated file zmodload zsh/datetime echo "LAST_EPOCH=$(( EPOCHSECONDS / 60 / 60 / 24 ))" >! "${ZSH_CACHE_DIR}/.zsh-update" # Remove update lock if it exists command rm -rf "$ZSH/log/update.lock" + # Restart the zsh session + _omz::log info "restarting the zsh session..." + [[ -z "$SHELL" ]] && exec ${SHELL#-} || exec zsh } diff --git a/lib/functions.zsh b/lib/functions.zsh index e85b867a5..0556aeb29 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -7,8 +7,20 @@ function uninstall_oh_my_zsh() { } function upgrade_oh_my_zsh() { - echo >&2 "${fg[yellow]}Note: \`$0\` is deprecated. Use \`omz update\` instead.$reset_color" - omz update + if (( $+functions[_omz::update] )); then + echo >&2 "${fg[yellow]}Note: \`$0\` is deprecated. Use \`omz update\` instead.$reset_color" + fi + + # Run update script + env ZSH="$ZSH" sh "$ZSH/tools/upgrade.sh" + # Update last updated file + zmodload zsh/datetime + echo "LAST_EPOCH=$(( EPOCHSECONDS / 60 / 60 / 24 ))" >! "${ZSH_CACHE_DIR}/.zsh-update" + # Remove update lock if it exists + command rm -rf "$ZSH/log/update.lock" + # Restart the zsh session + _omz::log info "restarting the zsh session..." + [[ -z "$SHELL" ]] && exec ${SHELL#-} || exec zsh } function take() {