-
-
Notifications
You must be signed in to change notification settings - Fork 398
/
Copy pathclient.go
84 lines (75 loc) · 3.06 KB
/
client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// This file is part of arduino-cli.
//
// Copyright 2020 ARDUINO SA (http://www.arduino.cc/)
//
// This software is released under the GNU General Public License version 3,
// which covers the main part of arduino-cli.
// The terms of this license can be found at:
// https://www.gnu.org/licenses/gpl-3.0.en.html
//
// You can be released from the requirements of the above licenses by purchasing
// a commercial license. Buying such a license is mandatory if you want to
// modify or otherwise use the software for commercial activities involving the
// Arduino software without disclosing the source code of your own applications.
// To purchase a commercial license, send an email to [email protected].
// Package main implements a simple gRPC client that demonstrates how to use gRPC-Go libraries
// to perform unary, client streaming, server streaming and full duplex RPCs.
//
// It interacts with the route guide service whose definition can be found in routeguide/route_guide.proto.
package main
import (
"io"
"log"
pb "github.com/arduino/arduino-cli/legacy/builder/grpc/proto"
"golang.org/x/net/context"
"google.golang.org/grpc"
)
// printFeature gets the feature for the given point.
func autocomplete(client pb.BuilderClient, in *pb.BuildParams) {
resp, err := client.Autocomplete(context.Background(), in)
if err != nil {
log.Fatalf("%v.GetFeatures(_) = _, %v: ", client, err)
}
log.Println(resp)
}
// printFeatures lists all the features within the given bounding Rectangle.
func build(client pb.BuilderClient, in *pb.BuildParams) {
stream, err := client.Build(context.Background(), in)
if err != nil {
log.Fatalf("%v.ListFeatures(_) = _, %v", client, err)
}
for {
line, err := stream.Recv()
if err == io.EOF {
break
}
if err != nil {
log.Fatalf("%v.ListFeatures(_) = _, %v", client, err)
}
log.Println(line)
}
}
func main() {
conn, err := grpc.Dial("localhost:12345", grpc.WithInsecure())
if err != nil {
log.Fatalf("fail to dial: %v", err)
}
defer conn.Close()
client := pb.NewBuilderClient(conn)
exampleParames := pb.BuildParams{
BuiltInLibrariesFolders: "/ssd/Arduino-master/build/linux/work/libraries",
CustomBuildProperties: "build.warn_data_percentage=75",
FQBN: "arduino:avr:mega:cpu=atmega2560",
HardwareFolders: "/ssd/Arduino-master/build/linux/work/hardware,/home/martino/.arduino15/packages,/home/martino/eslov-sk/hardware",
OtherLibrariesFolders: "/home/martino/eslov-sk/libraries",
ArduinoAPIVersion: "10805",
SketchLocation: "/home/martino/eslov-sk/libraries/WiFi101/examples/ScanNetworks/ScanNetworks.ino",
ToolsFolders: "/ssd/Arduino-master/build/linux/work/tools-builder,/ssd/Arduino-master/build/linux/work/hardware/tools/avr,/home/martino/.arduino15/packages",
Verbose: true,
WarningsLevel: "all",
BuildCachePath: "/tmp/arduino_cache_761418/",
CodeCompleteAt: "/home/martino/eslov-sk/libraries/WiFi101/examples/ScanNetworks/ScanNetworks.ino:56:9",
}
//build(client, &exampleParames)
autocomplete(client, &exampleParames)
}