Skip to content

Commit 4079684

Browse files
authored
[skip-changelog] Added UploadUsingProgrammer gRPC API (#1045)
* Added UploadUsingProgrammer gRPC call * fix indent
1 parent bf6bb1e commit 4079684

File tree

6 files changed

+628
-233
lines changed

6 files changed

+628
-233
lines changed

Diff for: commands/daemon/daemon.go

+13
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,19 @@ func (s *ArduinoCoreServerImpl) Upload(req *rpc.UploadReq, stream rpc.ArduinoCor
258258
return stream.Send(resp)
259259
}
260260

261+
// UploadUsingProgrammer FIXMEDOC
262+
func (s *ArduinoCoreServerImpl) UploadUsingProgrammer(req *rpc.UploadUsingProgrammerReq, stream rpc.ArduinoCore_UploadUsingProgrammerServer) error {
263+
resp, err := upload.UsingProgrammer(
264+
stream.Context(), req,
265+
utils.FeedStreamTo(func(data []byte) { stream.Send(&rpc.UploadUsingProgrammerResp{OutStream: data}) }),
266+
utils.FeedStreamTo(func(data []byte) { stream.Send(&rpc.UploadUsingProgrammerResp{ErrStream: data}) }),
267+
)
268+
if err != nil {
269+
return err
270+
}
271+
return stream.Send(resp)
272+
}
273+
261274
// BurnBootloader FIXMEDOC
262275
func (s *ArduinoCoreServerImpl) BurnBootloader(req *rpc.BurnBootloaderReq, stream rpc.ArduinoCore_BurnBootloaderServer) error {
263276
resp, err := upload.BurnBootloader(

Diff for: commands/upload/upload.go

+21
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,27 @@ func Upload(ctx context.Context, req *rpc.UploadReq, outStream io.Writer, errStr
7171
return &rpc.UploadResp{}, nil
7272
}
7373

74+
// UsingProgrammer FIXMEDOC
75+
func UsingProgrammer(ctx context.Context, req *rpc.UploadUsingProgrammerReq, outStream io.Writer, errStream io.Writer) (*rpc.UploadUsingProgrammerResp, error) {
76+
logrus.Tracef("Upload using programmer %s on %s started", req.GetSketchPath(), req.GetFqbn())
77+
78+
if req.GetProgrammer() == "" {
79+
return nil, errors.New("programmer not specified")
80+
}
81+
_, err := Upload(ctx, &rpc.UploadReq{
82+
Instance: req.GetInstance(),
83+
SketchPath: req.GetSketchPath(),
84+
ImportFile: req.GetImportFile(),
85+
ImportDir: req.GetImportDir(),
86+
Fqbn: req.GetFqbn(),
87+
Port: req.GetPort(),
88+
Programmer: req.GetProgrammer(),
89+
Verbose: req.GetVerbose(),
90+
Verify: req.GetVerify(),
91+
}, outStream, errStream)
92+
return &rpc.UploadUsingProgrammerResp{}, err
93+
}
94+
7495
func runProgramAction(pm *packagemanager.PackageManager,
7596
sketch *sketches.Sketch,
7697
importFile, importDir, fqbnIn, port string,

0 commit comments

Comments
 (0)