/* * return code * 0: success * */ func downloadNpm(version string) int { // set url url := config.GetConfig(config.REGISTRY) + "npm/" + version // download if code := curl.New(url, version, os.TempDir()+DIVIDE+version); code != 0 { return code } return 0 }
/* * return code * 0: success * 1: remove folder error * 2: folder exist * 3: create folder error * */ func download(version string) int { // get current os arch amd64 := "/" if runtime.GOARCH == "amd64" { amd64 = "/x64/" } // rootPath/version/node.exe is exist if _, err := util.GetNodeVersion(rootPath + version + DIVIDE); err == nil { P(WARING, "%v folder exist.\n", version) return 2 } else { if err := os.RemoveAll(rootPath + version); err != nil { P(ERROR, "remove %v fail, Error: %v\n", version, err.Error()) return 1 } //P(DEFAULT, "Remove empty [%v] folder success.\n", version) } // rootPath/version is exist if isDirExist(rootPath+version) != true { if err := os.Mkdir(rootPath+version, 0777); err != nil { P(ERROR, "create %v fail, Error: %v\n", version, err.Error()) return 3 } } // set url url := config.GetConfig(config.REGISTRY) + "v" + version + amd64 + NODE // download if code := curl.New(url, version, rootPath+version+DIVIDE+NODE); code != 0 { if code == -1 { if err := os.RemoveAll(rootPath + version); err != nil { P(ERROR, "remove %v fail, Error: %v\n", version, err.Error()) return 1 } } return code } return 0 }