From a3c020428bb21a4bbc10616b63aabb95b314526a Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Fri, 7 Jul 2023 17:20:12 +0200 Subject: [PATCH] Added plugin-based firmware index --- cli/common/common.go | 5 +++++ cli/globals/globals.go | 1 + indexes/download/download.go | 2 ++ 3 files changed, 8 insertions(+) diff --git a/cli/common/common.go b/cli/common/common.go index 9894659c..71c1af8d 100644 --- a/cli/common/common.go +++ b/cli/common/common.go @@ -63,6 +63,11 @@ func InitIndexes() (*packagemanager.PackageManager, *firmwareindex.Index) { if err != nil { feedback.Fatal(fmt.Sprintf("Can't load firmware index: %s", err), feedback.ErrGeneric) } + if pluginIndex, err := indexes.GetFirmwareIndex(globals.PluginFirmwareIndexGZURL, true); err != nil { + feedback.Fatal(fmt.Sprintf("Can't load (plugin) firmware index: %s", err), feedback.ErrGeneric) + } else { + firmwareIndex.MergeWith(pluginIndex) + } for _, additionalURL := range AdditionalFirmwareIndexURLs { additionalIndex, err := indexes.GetFirmwareIndex(additionalURL, false) if err != nil { diff --git a/cli/globals/globals.go b/cli/globals/globals.go index b7a76ac8..9827fb9b 100644 --- a/cli/globals/globals.go +++ b/cli/globals/globals.go @@ -27,6 +27,7 @@ import ( var ( PackageIndexGZURL = "https://downloads.arduino.cc/packages/package_index.json.gz" ModuleFirmwareIndexGZURL = "https://downloads.arduino.cc/arduino-fwuploader/boards/module_firmware_index.json.gz" + PluginFirmwareIndexGZURL = "https://downloads.arduino.cc/arduino-fwuploader/boards/plugin_firmware_index.json.gz" FwUploaderPath = paths.TempDir().Join("fwuploader") ) diff --git a/indexes/download/download.go b/indexes/download/download.go index fcc720ef..7b415d6c 100644 --- a/indexes/download/download.go +++ b/indexes/download/download.go @@ -288,6 +288,8 @@ func verifyIndex(indexPath *paths.Path, URL *url.URL) error { valid, err = verifyPackageIndex(indexPath, signaturePath) } else if index == "module_firmware_index.json.gz" { valid, err = verifyModuleFirmwareIndex(indexPath, signaturePath) + } else if index == "plugin_firmware_index.json.gz" { + valid, err = verifyModuleFirmwareIndex(indexPath, signaturePath) } else { return fmt.Errorf("index %s not supported", URL.Path) }