mirror of
https://github.com/coreybutler/nvm-windows.git
synced 2026-01-14 07:03:17 +08:00
Restructure to deal with new node release structure at http://nodejs.org/dist/
This is untested because the build chain isn't one I'm prepared to deal with.
This commit is contained in:
2
nvm.iss
2
nvm.iss
@@ -1,7 +1,7 @@
|
||||
#define MyAppName "NVM for Windows"
|
||||
#define MyAppShortName "nvm"
|
||||
#define MyAppLCShortName "nvm"
|
||||
#define MyAppVersion "1.0.6"
|
||||
#define MyAppVersion "1.1.0"
|
||||
#define MyAppPublisher "Ecor Ventures, LLC"
|
||||
#define MyAppURL "http://github.com/coreybutler/nvm"
|
||||
#define MyAppExeName "nvm.exe"
|
||||
|
||||
@@ -18,7 +18,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
NvmVersion = "1.0.6"
|
||||
NvmVersion = "1.1.0"
|
||||
)
|
||||
|
||||
type Environment struct {
|
||||
|
||||
@@ -59,26 +59,42 @@ func GetNodeJS(root string, v string, a string) bool {
|
||||
|
||||
a = arch.Validate(a)
|
||||
|
||||
url := ""
|
||||
vpre := ""
|
||||
vers := strings.Fields(strings.Replace(v,"."," ",-1))
|
||||
main, _ := strconv.ParseInt(vers[0],0,0)
|
||||
|
||||
if a == "32" {
|
||||
url = "http://nodejs.org/dist/v"+v+"/node.exe"
|
||||
if main > 0 {
|
||||
vpre = "win-x86/"
|
||||
} else {
|
||||
vpre = ""
|
||||
}
|
||||
} else if a == "64" {
|
||||
if main > 0 {
|
||||
vpre = "win-x64/"
|
||||
} else {
|
||||
vpre = "x64/"
|
||||
}
|
||||
}
|
||||
|
||||
url := getNodeUrl ( v, vpre );
|
||||
|
||||
if url == "" {
|
||||
//No url should mean this version/arch isn't available
|
||||
fmt.Println("Node.js v"+v+" " + a + "bit isn't available right now.")
|
||||
} else {
|
||||
if !IsNode64bitAvailable(v) {
|
||||
fmt.Println("Node.js v"+v+" is only available in 32-bit.")
|
||||
fileName := root+"\\v"+v+"\\node"+a+".exe"
|
||||
|
||||
fmt.Printf("Downloading node.js version "+v+" ("+a+"-bit)... ")
|
||||
|
||||
if Download(url,fileName) {
|
||||
fmt.Printf("Complete\n")
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
url = "http://nodejs.org/dist/v"+v+"/x64/node.exe"
|
||||
}
|
||||
fileName := root+"\\v"+v+"\\node"+a+".exe"
|
||||
|
||||
fmt.Printf("Downloading node.js version "+v+" ("+a+"-bit)... ")
|
||||
|
||||
if Download(url,fileName) {
|
||||
fmt.Printf("Complete\n")
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
return false
|
||||
|
||||
}
|
||||
|
||||
@@ -126,23 +142,16 @@ func GetRemoteTextFile(url string) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func IsNode64bitAvailable(v string) bool {
|
||||
if v == "latest" {
|
||||
return true
|
||||
}
|
||||
|
||||
// Anything below version 8 doesn't have a 64 bit version
|
||||
vers := strings.Fields(strings.Replace(v,"."," ",-1))
|
||||
main, _ := strconv.ParseInt(vers[0],0,0)
|
||||
minor, _ := strconv.ParseInt(vers[1],0,0)
|
||||
if main == 0 && minor < 8 {
|
||||
return false
|
||||
}
|
||||
|
||||
func getNodeUrl (v string, vpre string) string {
|
||||
url := "http://nodejs.org/dist/v"+v+"/" + vpre + "/node.exe"
|
||||
// Check online to see if a 64 bit version exists
|
||||
res, err := client.Head("http://nodejs.org/dist/v"+v+"/x64/node.exe")
|
||||
res, err := client.Head( url )
|
||||
if err != nil {
|
||||
return false
|
||||
return ""
|
||||
}
|
||||
if res.StatusCode == 200 {
|
||||
return url
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
return res.StatusCode == 200
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user