|
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