@@ -23,6 +23,7 @@ import (
23
23
"io"
24
24
"log"
25
25
"os"
26
+ "path"
26
27
"path/filepath"
27
28
"strings"
28
29
"time"
@@ -71,40 +72,24 @@ func main() {
71
72
callLoadSketch (client )
72
73
73
74
// Use SetValue to configure the arduino-cli directories.
74
- log .Println ("calling SetValue" )
75
- callSetValue (client )
75
+ callSetValue (client , "directories.data" , `"` + dataDir + `"` )
76
+ callSetValue (client , "directories.downloads" , `"` + path .Join (dataDir , "staging" )+ `"` )
77
+ callSetValue (client , "directories.user" , `"` + path .Join (dataDir , "sketchbook" )+ `"` )
76
78
77
79
// List all settings
78
- log .Println ("calling SettingsGetAll()" )
79
- callGetAll (client )
80
+ callConfigurationSave (client )
80
81
81
82
// Merge applies multiple settings values at once.
82
- log . Println ( "calling SettingsMerge()" )
83
- callMerge (client , `{"foo": {"value": "bar"}, "daemon":{"port":"422"}, "board_manager": {"additional_urls":[" https://example.com"]}} ` )
83
+ callSetValue ( client , "daemon.port" , `"422"` )
84
+ callSetValue (client , "board_manager.additional_urls" , `[ " https://example.com" ] ` )
84
85
85
- log .Println ("calling SettingsGetAll()" )
86
- callGetAll (client )
86
+ callConfigurationSave (client )
87
87
88
- log .Println ("calling SettingsMerge()" )
89
- callMerge (client , `{"foo": {} }` )
88
+ callSetValue (client , "daemon.port" , "" )
89
+ callGetValue (client , "daemon.port" )
90
+ callGetValue (client , "directories.data" )
90
91
91
- log .Println ("calling SettingsGetAll()" )
92
- callGetAll (client )
93
-
94
- log .Println ("calling SettingsMerge()" )
95
- callMerge (client , `{"foo": "bar" }` )
96
-
97
- // Get the value of the foo key.
98
- log .Println ("calling SettingsGetValue(foo)" )
99
- callGetValue (client )
100
-
101
- // List all settings
102
- log .Println ("calling SettingsGetAll()" )
103
- callGetAll (client )
104
-
105
- // Write settings to file.
106
- log .Println ("calling Write()" )
107
- callWrite (client )
92
+ callConfigurationSave (client )
108
93
109
94
// Before we can do anything with the CLI, an "instance" must be created.
110
95
// We keep a reference to the created instance because we will need it to
@@ -243,85 +228,66 @@ func callVersion(client rpc.ArduinoCoreServiceClient) {
243
228
log .Printf ("arduino-cli version: %v" , versionResp .GetVersion ())
244
229
}
245
230
246
- func callSetValue (client rpc.ArduinoCoreServiceClient ) {
247
- // _, err := client.SettingsSetValue(context.Background(),
248
- // &rpc.SettingsSetValueRequest{
249
- // Key: "directories",
250
- // JsonData: `{"data": "` + dataDir + `", "downloads": "` + path.Join(dataDir, "staging") + `", "user": "` + path.Join(dataDir, "sketchbook") + `"}`,
251
- // })
231
+ func callSetValue (client rpc.ArduinoCoreServiceClient , key , jsonValue string ) {
232
+ log .Printf ("Calling SetValue: %s = %s" , key , jsonValue )
233
+ _ , err := client .SettingsSetValue (context .Background (),
234
+ & rpc.SettingsSetValueRequest {
235
+ Key : key ,
236
+ EncodedValue : jsonValue ,
237
+ })
252
238
253
- // if err != nil {
254
- // log.Fatalf("Error setting settings value: %s", err)
255
- // }
239
+ if err != nil {
240
+ log .Fatalf ("Error setting settings value: %s" , err )
241
+ }
256
242
}
257
243
258
244
func callSetProxy (client rpc.ArduinoCoreServiceClient ) {
259
- // _, err := client.SettingsSetValue(context.Background(),
260
- // &rpc.SettingsSetValueRequest{
261
- // Key: "network.proxy",
262
- // JsonData : `"http://localhost:3128"`,
263
- // })
245
+ _ , err := client .SettingsSetValue (context .Background (),
246
+ & rpc.SettingsSetValueRequest {
247
+ Key : "network.proxy" ,
248
+ EncodedValue : `"http://localhost:3128"` ,
249
+ })
264
250
265
- // if err != nil {
266
- // log.Fatalf("Error setting settings value: %s", err)
267
- // }
251
+ if err != nil {
252
+ log .Fatalf ("Error setting settings value: %s" , err )
253
+ }
268
254
}
269
255
270
256
func callUnsetProxy (client rpc.ArduinoCoreServiceClient ) {
271
- // _, err := client.SettingsSetValue(context.Background(),
272
- // &rpc.SettingsSetValueRequest{
273
- // Key: "network.proxy",
274
- // JsonData: `""`,
275
- // })
276
-
277
- // if err != nil {
278
- // log.Fatalf("Error setting settings value: %s", err)
279
- // }
280
- }
281
-
282
- func callMerge (client rpc.ArduinoCoreServiceClient , jsonData string ) {
283
- // _, err := client.SettingsMerge(context.Background(),
284
- // &rpc.SettingsMergeRequest{
285
- // JsonData: jsonData,
286
- // })
257
+ _ , err := client .SettingsSetValue (context .Background (),
258
+ & rpc.SettingsSetValueRequest {
259
+ Key : "network.proxy" ,
260
+ })
287
261
288
- // if err != nil {
289
- // log.Fatalf("Error merging settings: %s", err)
290
- // }
262
+ if err != nil {
263
+ log .Fatalf ("Error setting settings value : %s" , err )
264
+ }
291
265
}
292
266
293
- func callGetValue (client rpc.ArduinoCoreServiceClient ) {
294
- // getValueResp, err := client.SettingsGetValue(context.Background(),
295
- // &rpc.SettingsGetValueRequest{
296
- // Key: "foo" ,
297
- // })
267
+ func callGetValue (client rpc.ArduinoCoreServiceClient , key string ) {
268
+ getValueResp , err := client .SettingsGetValue (context .Background (),
269
+ & rpc.SettingsGetValueRequest {
270
+ Key : key ,
271
+ })
298
272
299
- // if err != nil {
300
- // log.Fatalf("Error getting settings value: %s", err)
301
- // }
273
+ if err != nil {
274
+ log .Fatalf ("Error getting settings value: %s" , err )
275
+ }
302
276
303
- // log.Printf("Value: %s: %s", getValueResp.GetKey() , getValueResp.GetJsonData ())
277
+ log .Printf ("%s = %s" , key , getValueResp .GetEncodedValue ())
304
278
}
305
279
306
- func callGetAll (client rpc.ArduinoCoreServiceClient ) {
307
- // getAllResp, err := client.SettingsGetAll(context.Background(), &rpc.SettingsGetAllRequest{})
308
-
309
- // if err != nil {
310
- // log.Fatalf("Error getting settings: %s", err)
311
- // }
312
-
313
- // log.Printf("Settings: %s", getAllResp.GetJsonData())
314
- }
280
+ func callConfigurationSave (client rpc.ArduinoCoreServiceClient ) {
281
+ log .Println ("calling ConfigurationSave() >>" )
282
+ getAllResp , err := client .ConfigurationSave (context .Background (), & rpc.ConfigurationSaveRequest {
283
+ SettingsFormat : "json" ,
284
+ })
315
285
316
- func callWrite (client rpc.ArduinoCoreServiceClient ) {
317
- // _, err := client.SettingsWrite(context.Background(),
318
- // &rpc.SettingsWriteRequest{
319
- // FilePath: path.Join(dataDir, "written-rpc.Settingsyml"),
320
- // })
286
+ if err != nil {
287
+ log .Fatalf ("Error getting settings: %s" , err )
288
+ }
321
289
322
- // if err != nil {
323
- // log.Fatalf("Error writing settings: %s", err)
324
- // }
290
+ log .Printf ("Settings follow:\n \n %s" , getAllResp .GetEncodedSettings ())
325
291
}
326
292
327
293
func createInstance (client rpc.ArduinoCoreServiceClient ) * rpc.Instance {
0 commit comments