@@ -23,7 +23,6 @@ import (
23
23
"os"
24
24
"strings"
25
25
"sync"
26
- "testing"
27
26
"time"
28
27
29
28
"github.com/arduino/arduino-cli/executils"
@@ -42,6 +41,9 @@ type ArduinoCLI struct {
42
41
proc * executils.Process
43
42
cliEnvVars []string
44
43
cliConfigPath * paths.Path
44
+ stagingDir * paths.Path
45
+ dataDir * paths.Path
46
+ sketchbookDir * paths.Path
45
47
daemonAddr string
46
48
daemonConn * grpc.ClientConn
47
49
daemonClient commands.ArduinoCoreServiceClient
@@ -56,28 +58,26 @@ type ArduinoCLIConfig struct {
56
58
// NewArduinoCliWithinEnvironment creates a new Arduino CLI client inside the given environment.
57
59
func NewArduinoCliWithinEnvironment (env * testsuite.Environment , config * ArduinoCLIConfig ) * ArduinoCLI {
58
60
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" ),
63
67
}
68
+ if config .UseSharedStagingFolder {
69
+ cli .stagingDir = env .SharedDownloadsDir ()
70
+ }
71
+
64
72
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 ),
68
76
}
69
77
env .RegisterCleanUpCallback (cli .CleanUp )
70
78
return cli
71
79
}
72
80
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
-
81
81
// CleanUp closes the Arduino CLI client.
82
82
func (cli * ArduinoCLI ) CleanUp () {
83
83
if cli .proc != nil {
@@ -86,6 +86,16 @@ func (cli *ArduinoCLI) CleanUp() {
86
86
}
87
87
}
88
88
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
+
89
99
// Run executes the given arduino-cli command and returns the output.
90
100
func (cli * ArduinoCLI ) Run (args ... string ) ([]byte , []byte , error ) {
91
101
if cli .cliConfigPath != nil {
0 commit comments