@@ -23,7 +23,6 @@ import (
2323 "os"
2424 "strings"
2525 "sync"
26- "testing"
2726 "time"
2827
2928 "github.com/arduino/arduino-cli/executils"
@@ -42,6 +41,9 @@ type ArduinoCLI struct {
4241 proc * executils.Process
4342 cliEnvVars []string
4443 cliConfigPath * paths.Path
44+ stagingDir * paths.Path
45+ dataDir * paths.Path
46+ sketchbookDir * paths.Path
4547 daemonAddr string
4648 daemonConn * grpc.ClientConn
4749 daemonClient commands.ArduinoCoreServiceClient
@@ -56,28 +58,26 @@ type ArduinoCLIConfig struct {
5658// NewArduinoCliWithinEnvironment creates a new Arduino CLI client inside the given environment.
5759func NewArduinoCliWithinEnvironment (env * testsuite.Environment , config * ArduinoCLIConfig ) * ArduinoCLI {
5860 color .NoColor = false
59- cli := NewArduinoCli (env .T (), config )
60- staging := env .SharedDownloadsDir ()
61- if ! config .UseSharedStagingFolder {
62- staging = env .RootDir ().Join ("arduino15/staging" )
61+ cli := & ArduinoCLI {
62+ path : config .ArduinoCLIPath ,
63+ t : require .New (env .T ()),
64+ dataDir : env .RootDir ().Join ("arduino15" ),
65+ sketchbookDir : env .RootDir ().Join ("Arduino" ),
66+ stagingDir : env .RootDir ().Join ("arduino15/staging" ),
6367 }
68+ if config .UseSharedStagingFolder {
69+ cli .stagingDir = env .SharedDownloadsDir ()
70+ }
71+
6472 cli .cliEnvVars = []string {
65- fmt .Sprintf ("ARDUINO_DATA_DIR=%s" , env . RootDir (). Join ( "arduino15" ) ),
66- fmt .Sprintf ("ARDUINO_DOWNLOADS_DIR=%s" , staging ),
67- fmt .Sprintf ("ARDUINO_SKETCHBOOK_DIR=%s" , env . RootDir (). Join ( "Arduino" ) ),
73+ fmt .Sprintf ("ARDUINO_DATA_DIR=%s" , cli . dataDir ),
74+ fmt .Sprintf ("ARDUINO_DOWNLOADS_DIR=%s" , cli . stagingDir ),
75+ fmt .Sprintf ("ARDUINO_SKETCHBOOK_DIR=%s" , cli . sketchbookDir ),
6876 }
6977 env .RegisterCleanUpCallback (cli .CleanUp )
7078 return cli
7179}
7280
73- // NewArduinoCli creates a new Arduino CLI client.
74- func NewArduinoCli (t * testing.T , config * ArduinoCLIConfig ) * ArduinoCLI {
75- return & ArduinoCLI {
76- path : config .ArduinoCLIPath ,
77- t : require .New (t ),
78- }
79- }
80-
8181// CleanUp closes the Arduino CLI client.
8282func (cli * ArduinoCLI ) CleanUp () {
8383 if cli .proc != nil {
@@ -86,6 +86,16 @@ func (cli *ArduinoCLI) CleanUp() {
8686 }
8787}
8888
89+ // DataDir returns the data directory
90+ func (cli * ArduinoCLI ) DataDir () * paths.Path {
91+ return cli .dataDir
92+ }
93+
94+ // SketchbookDir returns the sketchbook directory
95+ func (cli * ArduinoCLI ) SketchbookDir () * paths.Path {
96+ return cli .sketchbookDir
97+ }
98+
8999// Run executes the given arduino-cli command and returns the output.
90100func (cli * ArduinoCLI ) Run (args ... string ) ([]byte , []byte , error ) {
91101 if cli .cliConfigPath != nil {
0 commit comments