// This file is part of arduino-cli. // // Copyright 2020 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 configuration import ( "path/filepath" "strings" "github.com/spf13/viper" ) // SetDefaults sets the default values for certain keys func SetDefaults(settings *viper.Viper) { // logging settings.SetDefault("logging.level", "info") settings.SetDefault("logging.format", "text") // Libraries settings.SetDefault("library.enable_unsafe_install", false) // Boards Manager settings.SetDefault("board_manager.additional_urls", []string{}) // arduino directories settings.SetDefault("directories.Data", getDefaultArduinoDataDir()) settings.SetDefault("directories.Downloads", filepath.Join(getDefaultArduinoDataDir(), "staging")) settings.SetDefault("directories.User", getDefaultUserDir()) // Sketch compilation settings.SetDefault("sketch.always_export_binaries", false) // daemon settings settings.SetDefault("daemon.port", "50051") //telemetry settings settings.SetDefault("telemetry.enabled", true) settings.SetDefault("telemetry.addr", ":9090") // Bind env vars settings.SetEnvPrefix("ARDUINO") settings.SetEnvKeyReplacer(strings.NewReplacer(".", "_")) settings.AutomaticEnv() // Bind env aliases to keep backward compatibility settings.BindEnv("library.enable_unsafe_install", "ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL") settings.BindEnv("directories.User", "ARDUINO_SKETCHBOOK_DIR") settings.BindEnv("directories.Downloads", "ARDUINO_DOWNLOADS_DIR") settings.BindEnv("directories.Data", "ARDUINO_DATA_DIR") settings.BindEnv("sketch.always_export_binaries", "ARDUINO_SKETCH_ALWAYS_EXPORT_BINARIES") }