@@ -4,32 +4,63 @@ import (
4
4
"context"
5
5
"fmt"
6
6
"log"
7
+ "os"
7
8
8
9
"github.com/arduino/arduino-cli/rpc"
9
10
"google.golang.org/grpc"
10
11
)
11
12
12
13
func main () {
14
+ if len (os .Args ) != 2 {
15
+ fmt .Println ("Please specify Arduino DATA_DIR as first argument" )
16
+ os .Exit (1 )
17
+ }
18
+ datadir := os .Args [1 ]
13
19
conn , err := grpc .Dial ("127.0.0.1:50051" , grpc .WithInsecure ())
14
20
if err != nil {
15
21
log .Fatal (err )
16
22
}
17
23
client := rpc .NewArduinoCoreClient (conn )
18
24
19
- resp , err := client .Init (context .Background (), & rpc.InitReq {})
25
+ resp , err := client .Init (context .Background (), & rpc.InitReq {
26
+ Configuration : & rpc.Configuration {
27
+ DataDir : datadir ,
28
+ },
29
+ })
20
30
if err != nil {
21
31
log .Fatal (err )
22
32
}
23
- fmt .Println (resp .GetInstance ())
33
+ if resp .GetResult ().GetFailed () {
34
+ fmt .Println ("Error opening server instance:" , resp .GetResult ().GetMessage ())
35
+ os .Exit (1 )
36
+ }
37
+ instance := resp .GetInstance ()
38
+ fmt .Println ("Opened new server instance:" , instance )
24
39
25
40
details , err := client .BoardDetails (context .Background (), & rpc.BoardDetailsReq {
26
- Instance : resp .GetInstance (),
27
- Fqbn : "" ,
41
+ Instance : instance ,
42
+ Fqbn : "arduino:samd:mkr1000" ,
43
+ })
44
+ if err != nil {
45
+ log .Fatal (err )
46
+ }
47
+ if details .GetResult ().GetFailed () {
48
+ fmt .Println ("Error getting board data:" , details .GetResult ().GetMessage ())
49
+ } else {
50
+ fmt .Println ("Board name: " , details .GetName ())
51
+ }
52
+
53
+ destroyResp , err := client .Destroy (context .Background (), & rpc.DestroyReq {
54
+ Instance : instance ,
28
55
})
29
56
if err != nil {
30
57
log .Fatal (err )
31
58
}
32
- fmt .Println (details .GetName ())
59
+ if destroyResp .GetResult ().GetFailed () {
60
+ fmt .Println ("Error closing instance:" , destroyResp .GetResult ().GetMessage ())
61
+ } else {
62
+ fmt .Println ("Successfully closed server instance" )
63
+ }
33
64
/*
34
65
compile, err := client.Compile(context.Background(), &pb.CompileReq{})
35
66
if err != nil {
0 commit comments