From 8741664e5561c244d841be780b171171ae665fda Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Cornell=C3=A0?= <hello@mcornella.com>
Date: Sun, 24 Apr 2022 18:58:36 +0200
Subject: [PATCH] fix(nvm): don't try to load nvm via `brew` if not found
 (#10878)

Fixes #10878
---
 plugins/nvm/nvm.plugin.zsh | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh
index b8f28c27c..630854a71 100644
--- a/plugins/nvm/nvm.plugin.zsh
+++ b/plugins/nvm/nvm.plugin.zsh
@@ -8,12 +8,13 @@ if [[ -z "$NVM_DIR" ]]; then
 fi
 
 # Don't try to load nvm if command already available
-which nvm &> /dev/null && return
+# Note: nvm is a function so we need to use `which`
+! which nvm &>/dev/null || return
 
 if [[ -f "$NVM_DIR/nvm.sh" ]]; then
   # Load nvm if it exists in $NVM_DIR
   source "$NVM_DIR/nvm.sh" ${NVM_LAZY+"--no-use"}
-else
+elif (( $+commands[brew] )); then
   # Otherwise try to load nvm installed via Homebrew
   # User can set this if they have an unusual Homebrew setup
   NVM_HOMEBREW="${NVM_HOMEBREW:-${HOMEBREW_PREFIX:-$(brew --prefix)}/opt/nvm}"
@@ -21,9 +22,10 @@ else
   if [[ -f "$NVM_HOMEBREW/nvm.sh" ]]; then
     source "$NVM_HOMEBREW/nvm.sh" ${NVM_LAZY+"--no-use"}
   else
-    # Exit the plugin if we couldn't find nvm
     return
   fi
+else
+  return
 fi
 
 # Call nvm when first using node, npm or yarn