diff --git a/commands/commands.go b/commands/commands.go index 1fed0b5bebe..e96cb10059e 100644 --- a/commands/commands.go +++ b/commands/commands.go @@ -90,7 +90,7 @@ func InitPackageManager() *packagemanager.PackageManager { Config.DownloadsDir(), Config.DataDir.Join("tmp")) - for _, URL := range configs.BoardManagerAdditionalUrls { + for _, URL := range Config.BoardManagerAdditionalUrls { if err := pm.LoadPackageIndex(URL); err != nil { formatter.PrintError(err, "Failed to load "+URL.String()+" package index.\n"+ "Try updating all indexes with `"+AppName+" core update-index`.") diff --git a/commands/core/update_index.go b/commands/core/update_index.go index b70d2f2db8d..245c6b07d26 100644 --- a/commands/core/update_index.go +++ b/commands/core/update_index.go @@ -28,7 +28,6 @@ import ( "github.com/arduino/arduino-cli/arduino/cores/packageindex" "github.com/arduino/arduino-cli/commands" "github.com/arduino/arduino-cli/common/formatter" - "github.com/arduino/arduino-cli/configs" "github.com/arduino/go-paths-helper" "github.com/sirupsen/logrus" "github.com/spf13/cobra" @@ -51,7 +50,7 @@ func runUpdateIndexCommand(cmd *cobra.Command, args []string) { } func updateIndexes() { - for _, URL := range configs.BoardManagerAdditionalUrls { + for _, URL := range commands.Config.BoardManagerAdditionalUrls { updateIndex(URL) } } diff --git a/configs/boards_manager.go b/configs/boards_manager.go deleted file mode 100644 index 4253311f3b0..00000000000 --- a/configs/boards_manager.go +++ /dev/null @@ -1,25 +0,0 @@ -/* - * This file is part of arduino-cli. - * - * Copyright 2018 ARDUINO SA (http://www.arduino.cc/) - * - * This software is released under the GNU General Public License version 3, - * which covers the main part of arduino-cli. - * The terms of this license can be found at: - * https://www.gnu.org/licenses/gpl-3.0.en.html - * - * You can be released from the requirements of the above licenses by purchasing - * a commercial license. Buying such a license is mandatory if you want to modify or - * otherwise use the software for commercial activities involving the Arduino - * software without disclosing the source code of your own applications. To purchase - * a commercial license, send an email to license@arduino.cc. - */ - -package configs - -import "net/url" - -var defaultPackageIndexURL, _ = url.Parse("https://downloads.arduino.cc/packages/package_index.json") - -// BoardManagerAdditionalUrls contains the additional URL for 3rd party packages -var BoardManagerAdditionalUrls = []*url.URL{defaultPackageIndexURL} diff --git a/configs/configuration.go b/configs/configuration.go index abb6b7a1ee8..7fa17acc6d7 100644 --- a/configs/configuration.go +++ b/configs/configuration.go @@ -20,6 +20,7 @@ package configs import ( "fmt" + "net/url" "github.com/arduino/go-paths-helper" ) @@ -42,8 +43,13 @@ type Configuration struct { // the field is true if the CLI is bundled with the Arduino IDE, false if the CLI is running // standalone or nil if the detection has not been performed. IDEBundledCheckResult *bool + + // BoardManagerAdditionalUrls contains the additional URL for 3rd party packages + BoardManagerAdditionalUrls []*url.URL } +var defaultPackageIndexURL, _ = url.Parse("https://downloads.arduino.cc/packages/package_index.json") + // NewConfiguration returns a new Configuration with the default values func NewConfiguration() (*Configuration, error) { dataDir, err := getDefaultArduinoDataDir() @@ -56,9 +62,10 @@ func NewConfiguration() (*Configuration, error) { } return &Configuration{ - ConfigFile: getDefaultConfigFilePath(), - DataDir: dataDir, - SketchbookDir: sketchbookDir, + ConfigFile: getDefaultConfigFilePath(), + DataDir: dataDir, + SketchbookDir: sketchbookDir, + BoardManagerAdditionalUrls: []*url.URL{defaultPackageIndexURL}, }, nil } diff --git a/configs/preferences_txt_serializer.go b/configs/preferences_txt_serializer.go index cee9e71f4e9..b132b34eb8a 100644 --- a/configs/preferences_txt_serializer.go +++ b/configs/preferences_txt_serializer.go @@ -87,7 +87,7 @@ func (config *Configuration) LoadFromDesktopIDEPreferences() error { if URLs, has := props.GetOk("boardsmanager.additional.urls"); has { for _, URL := range strings.Split(URLs, ",") { if newURL, err := url.Parse(URL); err == nil { - BoardManagerAdditionalUrls = append(BoardManagerAdditionalUrls, newURL) + config.BoardManagerAdditionalUrls = append(config.BoardManagerAdditionalUrls, newURL) } } } diff --git a/configs/yaml_serializer.go b/configs/yaml_serializer.go index 173484ab344..36bd03caace 100644 --- a/configs/yaml_serializer.go +++ b/configs/yaml_serializer.go @@ -81,7 +81,7 @@ func (config *Configuration) LoadFromYAML(path *paths.Path) error { logrus.WithError(err).Warn("Error parsing config") continue } - BoardManagerAdditionalUrls = append(BoardManagerAdditionalUrls, url) + config.BoardManagerAdditionalUrls = append(config.BoardManagerAdditionalUrls, url) } } return nil @@ -104,9 +104,9 @@ func (config *Configuration) SerializeToYAML() ([]byte, error) { Password: ProxyPassword, } } - if len(BoardManagerAdditionalUrls) > 1 { + if len(config.BoardManagerAdditionalUrls) > 1 { c.BoardsManager = &yamlBoardsManagerConfig{AdditionalURLS: []string{}} - for _, URL := range BoardManagerAdditionalUrls[1:] { + for _, URL := range config.BoardManagerAdditionalUrls[1:] { c.BoardsManager.AdditionalURLS = append(c.BoardsManager.AdditionalURLS, URL.String()) } }