From 902c41c6e0fdaa1e45c8b70a20e0db850cdae49a Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Thu, 27 Oct 2016 14:23:37 +0200 Subject: [PATCH] Fix "nvm use" swapping node32 and node64 even when not need --- src/nvm.go | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/nvm.go b/src/nvm.go index ffe3fe5..cccca34 100644 --- a/src/nvm.go +++ b/src/nvm.go @@ -359,21 +359,23 @@ func use(version string, cpuarch string) { // Use the assigned CPU architecture cpuarch = arch.Validate(cpuarch) - e32 := file.Exists(env.root+"\\v"+version+"\\node32.exe") - e64 := file.Exists(env.root+"\\v"+version+"\\node64.exe") - used := file.Exists(env.root+"\\v"+version+"\\node.exe") - if (e32 || e64) { - if used { - if e32 { - os.Rename(env.root+"\\v"+version+"\\node.exe",env.root+"\\v"+version+"\\node64.exe") - os.Rename(env.root+"\\v"+version+"\\node32.exe",env.root+"\\v"+version+"\\node.exe") - } else { - os.Rename(env.root+"\\v"+version+"\\node.exe",env.root+"\\v"+version+"\\node32.exe") - os.Rename(env.root+"\\v"+version+"\\node64.exe",env.root+"\\v"+version+"\\node.exe") - } - } else if e32 || e64 { - os.Rename(env.root+"\\v"+version+"\\node"+cpuarch+".exe",env.root+"\\v"+version+"\\node.exe") + nodepath := env.root+"\\v"+version+"\\node.exe" + node32path := env.root+"\\v"+version+"\\node32.exe" + node64path := env.root+"\\v"+version+"\\node64.exe" + node32exists := file.Exists(node32path) + node64exists := file.Exists(node64path) + nodeexists := file.Exists(nodepath) + if node32exists && cpuarch == "32" { // user wants 32, but node.exe is 64 + if nodeexists { + os.Rename(nodepath, node64path) // node.exe -> node64.exe } + os.Rename(node32path, nodepath) // node32.exe -> node.exe + } + if node64exists && cpuarch == "64" { // user wants 64, but node.exe is 32 + if nodeexists { + os.Rename(nodepath, node32path) // node.exe -> node32.exe + } + os.Rename(node64path, nodepath) // node64.exe -> node.exe } fmt.Println("Now using node v"+version+" ("+cpuarch+"-bit)") }