Skip to content

Commit d2426e5

Browse files
committed
Allow file paths as additional 'urls'
1 parent 1de1179 commit d2426e5

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

Diff for: indexes/indexes.go

+20-10
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@
1919
package indexes
2020

2121
import (
22+
"net/url"
2223
"strings"
2324

2425
"github.com/arduino/arduino-cli/arduino/cores"
2526
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2627
"github.com/arduino/arduino-fwuploader/indexes/download"
2728
"github.com/arduino/arduino-fwuploader/indexes/firmwareindex"
29+
"github.com/arduino/go-paths-helper"
2830
"github.com/sirupsen/logrus"
2931
semver "go.bug.st/relaxed-semver"
3032
)
@@ -52,24 +54,32 @@ func GetToolRelease(pm *packagemanager.PackageManager, toolID string) *cores.Too
5254

5355
// GetPackageIndex downloads and loads the Arduino package_index.json
5456
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
5965
}
60-
_, err = pmbuilder.LoadPackageIndexFromFile(indexPath)
66+
_, err := pmbuilder.LoadPackageIndexFromFile(indexPath)
6167
if err != nil {
6268
logrus.Error(err)
6369
}
6470
return err
6571
}
6672

6773
// 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
7383
}
7484
in, err := firmwareindex.LoadIndex(indexPath)
7585
if err != nil {

0 commit comments

Comments
 (0)