Skip to content

Commit ad9f4c0

Browse files
committed
Factored all download subroutines
1 parent aa23ea1 commit ad9f4c0

File tree

2 files changed

+11
-24
lines changed

2 files changed

+11
-24
lines changed

arduino/resources/download.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,11 @@ func (r *DownloadResource) Download(downloadDir *paths.Path, config *downloader.
5656
} else {
5757
return fmt.Errorf(tr("getting archive file info: %s"), err)
5858
}
59+
return DownloadFile(path, r.URL, label, downloadCB, config)
60+
}
5961

60-
d, err := downloader.DownloadWithConfig(path.String(), r.URL, *config)
62+
func DownloadFile(path *paths.Path, URL string, label string, downloadCB DownloadProgressCB, config *downloader.Config, options ...downloader.DownloadOptions) error {
63+
d, err := downloader.DownloadWithConfig(path.String(), URL, *config, options...)
6164
if err != nil {
6265
return err
6366
}

commands/instances.go

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -387,21 +387,15 @@ func UpdateLibrariesIndex(ctx context.Context, req *rpc.UpdateLibrariesIndexRequ
387387

388388
// Download gzipped library_index
389389
tmpIndexGz := tmp.Join("library_index.json.gz")
390-
if d, err := downloader.DownloadWithConfig(tmpIndexGz.String(), librariesmanager.LibraryIndexGZURL.String(), *config, downloader.NoResume); err == nil {
391-
if err := resources.Download(d, tr("Updating index: library_index.json.gz"), downloadCB.FromRPC()); err != nil {
392-
return &arduino.FailedDownloadError{Message: tr("Error downloading library_index.json.gz"), Cause: err}
393-
}
394-
} else {
390+
tmpIndexURL := librariesmanager.LibraryIndexGZURL.String()
391+
if err := resources.DownloadFile(tmpIndexGz, tmpIndexURL, tr("Updating index: library_index.json.gz"), downloadCB.FromRPC(), config, downloader.NoResume); err != nil {
395392
return &arduino.FailedDownloadError{Message: tr("Error downloading library_index.json.gz"), Cause: err}
396393
}
397394

398395
// Download signature
399396
tmpSignature := tmp.Join("library_index.json.sig")
400-
if d, err := downloader.DownloadWithConfig(tmpSignature.String(), librariesmanager.LibraryIndexSignature.String(), *config, downloader.NoResume); err == nil {
401-
if err := resources.Download(d, tr("Updating index: library_index.json.sig"), downloadCB.FromRPC()); err != nil {
402-
return &arduino.FailedDownloadError{Message: tr("Error downloading library_index.json.sig"), Cause: err}
403-
}
404-
} else {
397+
tmpSignatureURL := librariesmanager.LibraryIndexSignature.String()
398+
if err := resources.DownloadFile(tmpSignature, tmpSignatureURL, tr("Updating index: library_index.json.sig"), downloadCB.FromRPC(), config, downloader.NoResume); err != nil {
405399
return &arduino.FailedDownloadError{Message: tr("Error downloading library_index.json.sig"), Cause: err}
406400
}
407401

@@ -482,13 +476,9 @@ func UpdateIndex(ctx context.Context, req *rpc.UpdateIndexRequest, downloadCB Do
482476
if err != nil {
483477
return nil, &arduino.FailedDownloadError{Message: tr("Error downloading index '%s'", URL), Cause: err}
484478
}
485-
d, err := downloader.DownloadWithConfig(tmp.String(), URL.String(), *config)
486-
if err != nil {
487-
return nil, &arduino.FailedDownloadError{Message: tr("Error downloading index '%s'", URL), Cause: err}
488-
}
479+
489480
coreIndexPath := indexpath.Join(path.Base(URL.Path))
490-
err = resources.Download(d, tr("Updating index: %s", coreIndexPath.Base()), downloadCB.FromRPC())
491-
if err != nil {
481+
if err := resources.DownloadFile(tmp, URL.String(), tr("Updating index: %s", coreIndexPath.Base()), downloadCB.FromRPC(), config, downloader.NoResume); err != nil {
492482
return nil, &arduino.FailedDownloadError{Message: tr("Error downloading index '%s'", URL), Cause: err}
493483
}
494484

@@ -511,14 +501,8 @@ func UpdateIndex(ctx context.Context, req *rpc.UpdateIndexRequest, downloadCB Do
511501
}
512502
defer tmpSig.Remove()
513503

514-
d, err := downloader.DownloadWithConfig(tmpSig.String(), URLSig.String(), *config)
515-
if err != nil {
516-
return nil, &arduino.FailedDownloadError{Message: tr("Error downloading index signature '%s'", URLSig), Cause: err}
517-
}
518-
519504
coreIndexSigPath = indexpath.Join(path.Base(URLSig.Path))
520-
resources.Download(d, tr("Updating index: %s", coreIndexSigPath.Base()), downloadCB.FromRPC())
521-
if d.Error() != nil {
505+
if err := resources.DownloadFile(tmpSig, URLSig.String(), tr("Updating index: %s", coreIndexSigPath.Base()), downloadCB.FromRPC(), config, downloader.NoResume); err != nil {
522506
return nil, &arduino.FailedDownloadError{Message: tr("Error downloading index signature '%s'", URLSig), Cause: err}
523507
}
524508

0 commit comments

Comments
 (0)