@@ -46,21 +46,31 @@ type ArduinoCLI struct {
46
46
daemonClient commands.ArduinoCoreServiceClient
47
47
}
48
48
49
+ // ArduinoCLIConfig is the configuration of the ArduinoCLI client
50
+ type ArduinoCLIConfig struct {
51
+ ArduinoCLIPath * paths.Path
52
+ UseSharedStagingFolder bool
53
+ }
54
+
49
55
// NewArduinoCliWithinEnvironment creates a new Arduino CLI client inside the given environment.
50
- func NewArduinoCliWithinEnvironment (t * testing.T , cliPath * paths.Path , env * Environment ) * ArduinoCLI {
51
- cli := NewArduinoCli (t , cliPath )
56
+ func NewArduinoCliWithinEnvironment (t * testing.T , config * ArduinoCLIConfig , env * Environment ) * ArduinoCLI {
57
+ cli := NewArduinoCli (t , config )
58
+ staging := env .downloadsDir
59
+ if ! config .UseSharedStagingFolder {
60
+ staging = env .Root ().Join ("arduino15/staging" )
61
+ }
52
62
cli .cliEnvVars = []string {
53
63
fmt .Sprintf ("ARDUINO_DATA_DIR=%s" , env .Root ().Join ("arduino15" )),
54
- fmt .Sprintf ("ARDUINO_DOWNLOADS_DIR=%s" , env . Root (). Join ( "arduino15/ staging" ) ),
64
+ fmt .Sprintf ("ARDUINO_DOWNLOADS_DIR=%s" , staging ),
55
65
fmt .Sprintf ("ARDUINO_SKETCHBOOK_DIR=%s" , env .Root ().Join ("Arduino" )),
56
66
}
57
67
return cli
58
68
}
59
69
60
70
// NewArduinoCli creates a new Arduino CLI client.
61
- func NewArduinoCli (t * testing.T , cliPath * paths. Path ) * ArduinoCLI {
71
+ func NewArduinoCli (t * testing.T , config * ArduinoCLIConfig ) * ArduinoCLI {
62
72
return & ArduinoCLI {
63
- path : cliPath ,
73
+ path : config . ArduinoCLIPath ,
64
74
t : require .New (t ),
65
75
}
66
76
}
0 commit comments