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