@@ -24,9 +24,10 @@ import (
24
24
"path/filepath"
25
25
"strings"
26
26
27
- "github.com/arduino/arduino-cli/arduino/cores/packageindex "
27
+ "github.com/arduino/arduino-cli/arduino/cores/packagemanager "
28
28
"github.com/arduino/arduino-cli/arduino/serialutils"
29
29
"github.com/arduino/arduino-fwuploader/cli/feedback"
30
+ "github.com/arduino/arduino-fwuploader/cli/globals"
30
31
"github.com/arduino/arduino-fwuploader/indexes"
31
32
"github.com/arduino/arduino-fwuploader/indexes/download"
32
33
"github.com/arduino/arduino-fwuploader/indexes/firmwareindex"
@@ -37,17 +38,18 @@ import (
37
38
)
38
39
39
40
// InitIndexes downloads and parses the package_index.json and firmwares_index.json
40
- func InitIndexes () (* packageindex.Index , * firmwareindex.Index ) {
41
- packageIndex , err := indexes .GetPackageIndex ()
42
- if err != nil {
41
+ func InitIndexes () (* packagemanager.PackageManager , * firmwareindex.Index ) {
42
+ // Load main package index and optional additional indexes
43
+ pmbuilder := packagemanager .NewBuilder (nil , nil , nil , nil , "" )
44
+ if err := indexes .GetPackageIndex (pmbuilder , globals .PackageIndexGZURL ); err != nil {
43
45
feedback .Fatal (fmt .Sprintf ("Can't load package index: %s" , err ), feedback .ErrGeneric )
44
46
}
45
47
46
48
firmwareIndex , err := indexes .GetFirmwareIndex ()
47
49
if err != nil {
48
50
feedback .Fatal (fmt .Sprintf ("Can't load firmware index: %s" , err ), feedback .ErrGeneric )
49
51
}
50
- return packageIndex , firmwareIndex
52
+ return pmbuilder . Build () , firmwareIndex
51
53
}
52
54
53
55
// CheckFlags runs a basic check, errors if the flags are not defined
@@ -75,25 +77,25 @@ func GetBoard(firmwareIndex *firmwareindex.Index, fqbn string) *firmwareindex.In
75
77
76
78
// DownloadRequiredToolsForBoard is an helper function that downloads the correct tool to flash a board,
77
79
// it returns the path of the downloaded tool
78
- func DownloadRequiredToolsForBoard (packageIndex * packageindex. Index , board * firmwareindex.IndexBoard ) * paths.Path {
80
+ func DownloadRequiredToolsForBoard (pm * packagemanager. PackageManager , board * firmwareindex.IndexBoard ) * paths.Path {
79
81
if ! board .IsPlugin () {
80
82
// Just download the upload tool for integrated uploaders
81
- return downloadTool (packageIndex , board .Uploader )
83
+ return downloadTool (pm , board .Uploader )
82
84
}
83
85
84
86
// Download the plugin
85
- toolDir := downloadTool (packageIndex , board .UploaderPlugin )
87
+ toolDir := downloadTool (pm , board .UploaderPlugin )
86
88
87
89
// Also download the other additional tools
88
90
for _ , tool := range board .AdditionalTools {
89
- _ = downloadTool (packageIndex , tool )
91
+ _ = downloadTool (pm , tool )
90
92
}
91
93
92
94
return toolDir
93
95
}
94
96
95
- func downloadTool (packageIndex * packageindex. Index , tool string ) * paths.Path {
96
- toolRelease := indexes .GetToolRelease (packageIndex , tool )
97
+ func downloadTool (pm * packagemanager. PackageManager , tool string ) * paths.Path {
98
+ toolRelease := indexes .GetToolRelease (pm , tool )
97
99
if toolRelease == nil {
98
100
feedback .Fatal (fmt .Sprintf ("Error getting upload tool %s" , tool ), feedback .ErrGeneric )
99
101
}
0 commit comments