Skip to content

Commit 76ff3d6

Browse files
committed
Added --upload-properties flag to CLI upload and burn-bootloader commands.
1 parent b379808 commit 76ff3d6

File tree

2 files changed

+41
-33
lines changed

2 files changed

+41
-33
lines changed

internal/cli/burnbootloader/burnbootloader.go

+17-13
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,13 @@ import (
3232
)
3333

3434
var (
35-
fqbn arguments.Fqbn
36-
port arguments.Port
37-
verbose bool
38-
verify bool
39-
programmer arguments.Programmer
40-
dryRun bool
35+
fqbn arguments.Fqbn
36+
port arguments.Port
37+
verbose bool
38+
verify bool
39+
programmer arguments.Programmer
40+
dryRun bool
41+
uploadProperties []string
4142
)
4243

4344
// NewCommand created a new `burn-bootloader` command
@@ -56,6 +57,8 @@ func NewCommand(srv rpc.ArduinoCoreServiceServer) *cobra.Command {
5657
fqbn.AddToCommand(burnBootloaderCommand, srv)
5758
port.AddToCommand(burnBootloaderCommand, srv)
5859
programmer.AddToCommand(burnBootloaderCommand, srv)
60+
burnBootloaderCommand.Flags().StringArrayVar(&uploadProperties, "upload-property", []string{},
61+
i18n.Tr("Override an upload property with a custom value. Can be used multiple times for multiple properties."))
5962
burnBootloaderCommand.Flags().BoolVarP(&verify, "verify", "t", false, i18n.Tr("Verify uploaded binary after the upload."))
6063
burnBootloaderCommand.Flags().BoolVarP(&verbose, "verbose", "v", false, i18n.Tr("Turns on verbose mode."))
6164
burnBootloaderCommand.Flags().BoolVar(&dryRun, "dry-run", false, i18n.Tr("Do not perform the actual upload, just log out actions"))
@@ -78,13 +81,14 @@ func runBootloaderCommand(ctx context.Context, srv rpc.ArduinoCoreServiceServer)
7881
stdOut, stdErr, res := feedback.OutputStreams()
7982
stream := commands.BurnBootloaderToServerStreams(ctx, stdOut, stdErr)
8083
if err := srv.BurnBootloader(&rpc.BurnBootloaderRequest{
81-
Instance: instance,
82-
Fqbn: fqbn.String(),
83-
Port: discoveryPort,
84-
Verbose: verbose,
85-
Verify: verify,
86-
Programmer: programmer.String(ctx, instance, srv, fqbn.String()),
87-
DryRun: dryRun,
84+
Instance: instance,
85+
Fqbn: fqbn.String(),
86+
Port: discoveryPort,
87+
Verbose: verbose,
88+
Verify: verify,
89+
Programmer: programmer.String(ctx, instance, srv, fqbn.String()),
90+
UploadProperties: uploadProperties,
91+
DryRun: dryRun,
8892
}, stream); err != nil {
8993
errcode := feedback.ErrGeneric
9094
if errors.Is(err, &cmderrors.ProgrammerRequiredForUploadError{}) {

internal/cli/upload/upload.go

+24-20
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,16 @@ import (
3636
)
3737

3838
var (
39-
fqbnArg arguments.Fqbn
40-
portArgs arguments.Port
41-
profileArg arguments.Profile
42-
verbose bool
43-
verify bool
44-
importDir string
45-
importFile string
46-
programmer arguments.Programmer
47-
dryRun bool
39+
fqbnArg arguments.Fqbn
40+
portArgs arguments.Port
41+
profileArg arguments.Profile
42+
verbose bool
43+
verify bool
44+
importDir string
45+
importFile string
46+
programmer arguments.Programmer
47+
dryRun bool
48+
uploadProperties []string
4849
)
4950

5051
// NewCommand created a new `upload` command
@@ -71,6 +72,8 @@ func NewCommand(srv rpc.ArduinoCoreServiceServer) *cobra.Command {
7172
profileArg.AddToCommand(uploadCommand, srv)
7273
uploadCommand.Flags().StringVarP(&importDir, "input-dir", "", "", i18n.Tr("Directory containing binaries to upload."))
7374
uploadCommand.Flags().StringVarP(&importFile, "input-file", "i", "", i18n.Tr("Binary file to upload."))
75+
uploadCommand.Flags().StringArrayVar(&uploadProperties, "upload-property", []string{},
76+
i18n.Tr("Override an upload property with a custom value. Can be used multiple times for multiple properties."))
7477
uploadCommand.Flags().BoolVarP(&verify, "verify", "t", false, i18n.Tr("Verify uploaded binary after the upload."))
7578
uploadCommand.Flags().BoolVarP(&verbose, "verbose", "v", false, i18n.Tr("Optional, turns on verbose mode."))
7679
programmer.AddToCommand(uploadCommand, srv)
@@ -184,17 +187,18 @@ func runUploadCommand(ctx context.Context, srv rpc.ArduinoCoreServiceServer, arg
184187

185188
stdOut, stdErr, stdIOResult := feedback.OutputStreams()
186189
req := &rpc.UploadRequest{
187-
Instance: inst,
188-
Fqbn: fqbn,
189-
SketchPath: path,
190-
Port: port,
191-
Verbose: verbose,
192-
Verify: verify,
193-
ImportFile: importFile,
194-
ImportDir: importDir,
195-
Programmer: prog,
196-
DryRun: dryRun,
197-
UserFields: fields,
190+
Instance: inst,
191+
Fqbn: fqbn,
192+
SketchPath: path,
193+
Port: port,
194+
Verbose: verbose,
195+
Verify: verify,
196+
ImportFile: importFile,
197+
ImportDir: importDir,
198+
Programmer: prog,
199+
DryRun: dryRun,
200+
UserFields: fields,
201+
UploadProperties: uploadProperties,
198202
}
199203
stream, streamResp := commands.UploadToServerStreams(ctx, stdOut, stdErr)
200204
if err := srv.Upload(req, stream); err != nil {

0 commit comments

Comments
 (0)