Skip to content

Commit f8b279e

Browse files
author
Massimiliano Pippi
committed
fix integration tests
1 parent e530ed6 commit f8b279e

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

Diff for: cli/cli_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ func TestMain(m *testing.M) {
9292

9393
// SetUp
9494
currDataDir = tmpDirOrDie()
95+
os.MkdirAll(filepath.Join(currDataDir, "packages"), 0755)
9596
os.Setenv("ARDUINO_DATA_DIR", currDataDir)
9697
currDownloadDir = tmpDirOrDie()
9798
os.Setenv("ARDUINO_DOWNLOADS_DIR", currDownloadDir)

Diff for: configuration/configuration.go

+23-12
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,6 @@ func Init(configPath string) {
4141
logrus.Infof("Checking for config file in: %s", configPath)
4242
viper.AddConfigPath(configPath)
4343

44-
// Set configuration defaults
45-
setDefaults(configPath, getDefaultSketchbookDir())
46-
47-
// Attempt to read config file
48-
if err := viper.ReadInConfig(); err != nil {
49-
if _, ok := err.(viper.ConfigFileNotFoundError); ok {
50-
logrus.Info("Config file not found, using default values")
51-
} else {
52-
feedback.Errorf("Error reading config file: %v", err)
53-
}
54-
}
55-
5644
// Bind env vars
5745
viper.SetEnvPrefix("ARDUINO")
5846
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
@@ -62,6 +50,29 @@ func Init(configPath string) {
6250
viper.BindEnv("directories.Sketchbook", "ARDUINO_SKETCHBOOK_DIR")
6351
viper.BindEnv("directories.Downloads", "ARDUINO_DOWNLOADS_DIR")
6452
viper.BindEnv("directories.Data", "ARDUINO_DATA_DIR")
53+
54+
// Early access directories.Data and directories.Sketchbookin case
55+
// those were set through env vars or cli flags
56+
dataDir := viper.GetString("directories.Data")
57+
if dataDir == "" {
58+
dataDir = getDefaultArduinoDataDir()
59+
}
60+
sketchbookDir := viper.GetString("directories.Sketchbook")
61+
if sketchbookDir == "" {
62+
sketchbookDir = getDefaultSketchbookDir()
63+
}
64+
65+
// Set default values for all the settings
66+
setDefaults(dataDir, sketchbookDir)
67+
68+
// Attempt to read config file
69+
if err := viper.ReadInConfig(); err != nil {
70+
if _, ok := err.(viper.ConfigFileNotFoundError); ok {
71+
logrus.Info("Config file not found, using default values")
72+
} else {
73+
feedback.Errorf("Error reading config file: %v", err)
74+
}
75+
}
6576
}
6677

6778
// getDefaultArduinoDataDir returns the full path to the default arduino folder

0 commit comments

Comments
 (0)