Skip to content

Commit c7c0367

Browse files
Modify board attach command to set a default programmer
1 parent c048afa commit c7c0367

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

internal/cli/board/attach.go

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,35 +30,39 @@ import (
3030
func initAttachCommand() *cobra.Command {
3131
var port arguments.Port
3232
var fqbn arguments.Fqbn
33+
var programmer arguments.Programmer
3334
attachCommand := &cobra.Command{
34-
Use: fmt.Sprintf("attach [-p <%s>] [-b <%s>] [%s]", tr("port"), tr("FQBN"), tr("sketchPath")),
35+
Use: fmt.Sprintf("attach [-p <%s>] [-b <%s>] [-P <%s>] [%s]", tr("port"), tr("FQBN"), tr("programmer"), tr("sketchPath")),
3536
Short: tr("Attaches a sketch to a board."),
36-
Long: tr("Sets the default values for port and FQBN. If no port or FQBN are specified, the current default port and FQBN are displayed."),
37+
Long: tr("Sets the default values for port and FQBN. If no port, FQBN or programmer are specified, the current default port, FQBN and programmer are displayed."),
3738
Example: " " + os.Args[0] + " board attach -p /dev/ttyACM0\n" +
3839
" " + os.Args[0] + " board attach -p /dev/ttyACM0 HelloWorld\n" +
39-
" " + os.Args[0] + " board attach -b arduino:samd:mkr1000",
40+
" " + os.Args[0] + " board attach -b arduino:samd:mkr1000" +
41+
" " + os.Args[0] + " board attach -P atmel_ice",
4042
Args: cobra.MaximumNArgs(1),
4143
Run: func(cmd *cobra.Command, args []string) {
4244
sketchPath := ""
4345
if len(args) > 0 {
4446
sketchPath = args[0]
4547
}
46-
runAttachCommand(sketchPath, &port, fqbn.String())
48+
runAttachCommand(sketchPath, &port, fqbn.String(), &programmer)
4749
},
4850
}
4951
fqbn.AddToCommand(attachCommand)
5052
port.AddToCommand(attachCommand)
53+
programmer.AddToCommand(attachCommand)
5154

5255
return attachCommand
5356
}
5457

55-
func runAttachCommand(path string, port *arguments.Port, fqbn string) {
58+
func runAttachCommand(path string, port *arguments.Port, fqbn string, programmer *arguments.Programmer) {
5659
sketchPath := arguments.InitSketchPath(path)
5760

5861
portAddress, portProtocol, _ := port.GetPortAddressAndProtocol(nil, "", "")
5962
newDefaults, err := sketch.SetSketchDefaults(context.Background(), &rpc.SetSketchDefaultsRequest{
6063
SketchPath: sketchPath.String(),
6164
DefaultFqbn: fqbn,
65+
DefaultProgrammer: programmer.GetProgrammer(),
6266
DefaultPortAddress: portAddress,
6367
DefaultPortProtocol: portProtocol,
6468
})
@@ -67,7 +71,8 @@ func runAttachCommand(path string, port *arguments.Port, fqbn string) {
6771
}
6872

6973
res := &boardAttachResult{
70-
Fqbn: newDefaults.GetDefaultFqbn(),
74+
Fqbn: newDefaults.GetDefaultFqbn(),
75+
Programmer: newDefaults.GetDefaultProgrammer(),
7176
}
7277
if newDefaults.GetDefaultPortAddress() != "" {
7378
res.Port = &boardAttachPortResult{
@@ -92,19 +97,21 @@ func (b *boardAttachPortResult) String() string {
9297
}
9398

9499
type boardAttachResult struct {
95-
Fqbn string `json:"fqbn,omitempty"`
96-
Port *boardAttachPortResult `json:"port,omitempty"`
100+
Fqbn string `json:"fqbn,omitempty"`
101+
Programmer string `json:"programmer,omitempty"`
102+
Port *boardAttachPortResult `json:"port,omitempty"`
97103
}
98104

99105
func (b *boardAttachResult) Data() interface{} {
100106
return b
101107
}
102108

103109
func (b *boardAttachResult) String() string {
104-
if b.Port == nil && b.Fqbn == "" {
105-
return tr("No default port or FQBN set")
110+
if b.Port == nil && b.Fqbn == "" && b.Programmer == "" {
111+
return tr("No default port, FQBN or programmer set")
106112
}
107113
res := fmt.Sprintf("%s: %s\n", tr("Default port set to"), b.Port)
108114
res += fmt.Sprintf("%s: %s\n", tr("Default FQBN set to"), b.Fqbn)
115+
res += fmt.Sprintf("%s: %s\n", tr("Default programmer set to"), b.Programmer)
109116
return res
110117
}

0 commit comments

Comments
 (0)