@@ -30,35 +30,39 @@ import (
30
30
func initAttachCommand () * cobra.Command {
31
31
var port arguments.Port
32
32
var fqbn arguments.Fqbn
33
+ var programmer arguments.Programmer
33
34
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" )),
35
36
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." ),
37
38
Example : " " + os .Args [0 ] + " board attach -p /dev/ttyACM0\n " +
38
39
" " + 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" ,
40
42
Args : cobra .MaximumNArgs (1 ),
41
43
Run : func (cmd * cobra.Command , args []string ) {
42
44
sketchPath := ""
43
45
if len (args ) > 0 {
44
46
sketchPath = args [0 ]
45
47
}
46
- runAttachCommand (sketchPath , & port , fqbn .String ())
48
+ runAttachCommand (sketchPath , & port , fqbn .String (), & programmer )
47
49
},
48
50
}
49
51
fqbn .AddToCommand (attachCommand )
50
52
port .AddToCommand (attachCommand )
53
+ programmer .AddToCommand (attachCommand )
51
54
52
55
return attachCommand
53
56
}
54
57
55
- func runAttachCommand (path string , port * arguments.Port , fqbn string ) {
58
+ func runAttachCommand (path string , port * arguments.Port , fqbn string , programmer * arguments. Programmer ) {
56
59
sketchPath := arguments .InitSketchPath (path )
57
60
58
61
portAddress , portProtocol , _ := port .GetPortAddressAndProtocol (nil , "" , "" )
59
62
newDefaults , err := sketch .SetSketchDefaults (context .Background (), & rpc.SetSketchDefaultsRequest {
60
63
SketchPath : sketchPath .String (),
61
64
DefaultFqbn : fqbn ,
65
+ DefaultProgrammer : programmer .GetProgrammer (),
62
66
DefaultPortAddress : portAddress ,
63
67
DefaultPortProtocol : portProtocol ,
64
68
})
@@ -67,7 +71,8 @@ func runAttachCommand(path string, port *arguments.Port, fqbn string) {
67
71
}
68
72
69
73
res := & boardAttachResult {
70
- Fqbn : newDefaults .GetDefaultFqbn (),
74
+ Fqbn : newDefaults .GetDefaultFqbn (),
75
+ Programmer : newDefaults .GetDefaultProgrammer (),
71
76
}
72
77
if newDefaults .GetDefaultPortAddress () != "" {
73
78
res .Port = & boardAttachPortResult {
@@ -92,19 +97,21 @@ func (b *boardAttachPortResult) String() string {
92
97
}
93
98
94
99
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"`
97
103
}
98
104
99
105
func (b * boardAttachResult ) Data () interface {} {
100
106
return b
101
107
}
102
108
103
109
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" )
106
112
}
107
113
res := fmt .Sprintf ("%s: %s\n " , tr ("Default port set to" ), b .Port )
108
114
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 )
109
116
return res
110
117
}
0 commit comments