|
19 | 19 | package indexes
|
20 | 20 |
|
21 | 21 | import (
|
| 22 | + "net/url" |
22 | 23 | "strings"
|
23 | 24 |
|
24 | 25 | "github.com/arduino/arduino-cli/arduino/cores"
|
25 | 26 | "github.com/arduino/arduino-cli/arduino/cores/packagemanager"
|
26 | 27 | "github.com/arduino/arduino-fwuploader/indexes/download"
|
27 | 28 | "github.com/arduino/arduino-fwuploader/indexes/firmwareindex"
|
| 29 | + "github.com/arduino/go-paths-helper" |
28 | 30 | "github.com/sirupsen/logrus"
|
29 | 31 | semver "go.bug.st/relaxed-semver"
|
30 | 32 | )
|
@@ -52,24 +54,32 @@ func GetToolRelease(pm *packagemanager.PackageManager, toolID string) *cores.Too
|
52 | 54 |
|
53 | 55 | // GetPackageIndex downloads and loads the Arduino package_index.json
|
54 | 56 | func GetPackageIndex(pmbuilder *packagemanager.Builder, indexURL string) error {
|
55 |
| - indexPath, err := download.DownloadIndex(indexURL) |
56 |
| - if err != nil { |
57 |
| - logrus.Error(err) |
58 |
| - return err |
| 57 | + indexPath := paths.New(indexURL) |
| 58 | + if u, err := url.Parse(indexURL); err == nil && u.Scheme != "" { |
| 59 | + downloadedPath, err := download.DownloadIndex(indexURL) |
| 60 | + if err != nil { |
| 61 | + logrus.Error(err) |
| 62 | + return err |
| 63 | + } |
| 64 | + indexPath = downloadedPath |
59 | 65 | }
|
60 |
| - _, err = pmbuilder.LoadPackageIndexFromFile(indexPath) |
| 66 | + _, err := pmbuilder.LoadPackageIndexFromFile(indexPath) |
61 | 67 | if err != nil {
|
62 | 68 | logrus.Error(err)
|
63 | 69 | }
|
64 | 70 | return err
|
65 | 71 | }
|
66 | 72 |
|
67 | 73 | // GetFirmwareIndex downloads and loads the arduino-fwuploader module_firmware_index.json
|
68 |
| -func GetFirmwareIndex(indexUrl string) (*firmwareindex.Index, error) { |
69 |
| - indexPath, err := download.DownloadIndex(indexUrl) |
70 |
| - if err != nil { |
71 |
| - logrus.Error(err) |
72 |
| - return nil, err |
| 74 | +func GetFirmwareIndex(indexURL string) (*firmwareindex.Index, error) { |
| 75 | + indexPath := paths.New(indexURL) |
| 76 | + if u, err := url.Parse(indexURL); err == nil && u.Scheme != "" { |
| 77 | + downloadedPath, err := download.DownloadIndex(indexURL) |
| 78 | + if err != nil { |
| 79 | + logrus.Error(err) |
| 80 | + return nil, err |
| 81 | + } |
| 82 | + indexPath = downloadedPath |
73 | 83 | }
|
74 | 84 | in, err := firmwareindex.LoadIndex(indexPath)
|
75 | 85 | if err != nil {
|
|
0 commit comments