Skip to content

Commit 8b614d3

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

File tree

1 file changed

+23
-10
lines changed

1 file changed

+23
-10
lines changed

Diff for: indexes/indexes.go

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

2121
import (
22+
"fmt"
23+
"net/url"
2224
"strings"
2325

2426
"github.com/arduino/arduino-cli/arduino/cores"
2527
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2628
"github.com/arduino/arduino-fwuploader/indexes/download"
2729
"github.com/arduino/arduino-fwuploader/indexes/firmwareindex"
30+
"github.com/arduino/go-paths-helper"
2831
"github.com/sirupsen/logrus"
2932
semver "go.bug.st/relaxed-semver"
3033
)
@@ -52,24 +55,34 @@ func GetToolRelease(pm *packagemanager.PackageManager, toolID string) *cores.Too
5255

5356
// GetPackageIndex downloads and loads the Arduino package_index.json
5457
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
5967
}
60-
_, err = pmbuilder.LoadPackageIndexFromFile(indexPath)
68+
_, err := pmbuilder.LoadPackageIndexFromFile(indexPath)
6169
if err != nil {
6270
logrus.Error(err)
6371
}
6472
return err
6573
}
6674

6775
// 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
7386
}
7487
in, err := firmwareindex.LoadIndex(indexPath)
7588
if err != nil {

0 commit comments

Comments
 (0)