func DownloadVersion(versionDetails *utils.VersionDetails, targetPath string, flags *utils.DownloadFlags) (totalDownloded, totalFailed int, err error) { ioutils.CreateTempDirPath() defer ioutils.RemoveTempDir() if flags.BintrayDetails.User == "" { flags.BintrayDetails.User = versionDetails.Subject } path := BuildDownloadVersionUrl(versionDetails, flags.BintrayDetails, flags.IncludeUnpublished) httpClientsDetails := utils.GetBintrayHttpClientDetails(flags.BintrayDetails) resp, body, _, _ := ioutils.SendGet(path, true, httpClientsDetails) if resp.StatusCode != 200 { err = cliutils.CheckError(errors.New(resp.Status + ". " + utils.ReadBintrayMessage(body))) return } var results []VersionFilesResult err = json.Unmarshal(body, &results) if cliutils.CheckError(err) != nil { return } totalDownloded, err = downloadFiles(results, versionDetails, targetPath, flags) log.Info("Downloaded", strconv.Itoa(totalDownloded), "artifacts.") totalFailed = len(results) - totalDownloded return }
func DownloadFile(pathDetails *utils.PathDetails, targetPath string, flags *utils.DownloadFlags) (err error) { ioutils.CreateTempDirPath() defer ioutils.RemoveTempDir() if flags.BintrayDetails.User == "" { flags.BintrayDetails.User = pathDetails.Subject } err = utils.DownloadBintrayFile(flags.BintrayDetails, pathDetails, targetPath, flags, "") if err != nil { return } log.Info("Downloaded 1 artifact.") return }
func Download(downloadSpec *utils.SpecFiles, flags *DownloadFlags) (err error) { err = utils.PreCommandSetup(flags) if err != nil { return } isCollectBuildInfo := len(flags.BuildName) > 0 && len(flags.BuildNumber) > 0 if isCollectBuildInfo && !flags.DryRun { if err = utils.SaveBuildGeneralDetails(flags.BuildName, flags.BuildNumber); err != nil { return } } if !flags.DryRun { err = ioutils.CreateTempDirPath() if err != nil { return } defer ioutils.RemoveTempDir() } buildDependecies := make([][]utils.DependenciesBuildInfo, flags.Threads) log.Info("Searching artifacts...") var downloadData []DownloadData for i := 0; i < len(downloadSpec.Files); i++ { var partialDownloadData []DownloadData switch downloadSpec.Get(i).GetSpecType() { case utils.WILDCARD, utils.SIMPLE: partialDownloadData, err = collectWildcardDependecies(downloadSpec.Get(i), flags) case utils.AQL: partialDownloadData, err = collectAqlDependecies(downloadSpec.Get(i), flags) } if err != nil { return } downloadData = append(downloadData, partialDownloadData...) } utils.LogSearchResults(len(downloadData)) buildDependecies, err = downloadAqlResult(downloadData, flags) if err != nil { return } if isCollectBuildInfo && !flags.DryRun { populateFunc := func(tempWrapper *utils.ArtifactBuildInfoWrapper) { tempWrapper.Dependencies = stripThreadIdFromBuildInfoDependencies(buildDependecies) } err = utils.PrepareBuildInfoForSave(flags.BuildName, flags.BuildNumber, populateFunc) } return }