Skip to content

Commit 8913bff

Browse files
committed
Implement 'attach board' using sketch project file
1 parent 4b4e1e7 commit 8913bff

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed

Diff for: arduino/sketch/sketch.go

+14
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,20 @@ func (s *Sketch) GetDefaultPortAddressAndProtocol() (string, string) {
308308
return s.Project.DefaultPort, s.Project.DefaultProtocol
309309
}
310310

311+
// SetDefaultFQBN sets the default FQBN for the sketch and saves it in the sketch.yaml project file.
312+
func (s *Sketch) SetDefaultFQBN(fqbn string) error {
313+
s.Project.DefaultFqbn = fqbn
314+
return s.SaveProjectFile()
315+
}
316+
317+
// SetDefaultPort sets the default port address and port protocol for the sketch and saves it in the
318+
// sketch.yaml project file.
319+
func (s *Sketch) SetDefaultPort(address, protocol string) error {
320+
s.Project.DefaultPort = address
321+
s.Project.DefaultProtocol = protocol
322+
return s.SaveProjectFile()
323+
}
324+
311325
// InvalidSketchFolderNameError is returned when the sketch directory doesn't match the sketch name
312326
type InvalidSketchFolderNameError struct {
313327
SketchFolder *paths.Path

Diff for: cli/board/attach.go

+11-10
Original file line numberDiff line numberDiff line change
@@ -55,21 +55,22 @@ func runAttachCommand(path string, port *arguments.Port, fqbn string) {
5555

5656
address, protocol, _ := port.GetPortAddressAndProtocol(nil, sk)
5757
if address != "" {
58-
sk.Metadata.CPU.Port = address
59-
sk.Metadata.CPU.Protocol = protocol
60-
msg := fmt.Sprintf("%s: %s", tr("Set port to"), address)
58+
if err := sk.SetDefaultPort(address, protocol); err != nil {
59+
feedback.Errorf("%s: %s", tr("Error saving sketch metadata"), err)
60+
os.Exit(errorcodes.ErrGeneric)
61+
}
62+
msg := fmt.Sprintf("%s: %s", tr("Default port set to"), address)
6163
if protocol != "" {
62-
msg += " / " + protocol
64+
msg += " (" + protocol + ")"
6365
}
6466
feedback.Print(msg)
6567
}
6668
if fqbn != "" {
67-
sk.Metadata.CPU.Fqbn = fqbn
68-
msg := fmt.Sprintf("%s: %s", tr("Set FQBN to"), fqbn)
69+
if err := sk.SetDefaultFQBN(fqbn); err != nil {
70+
feedback.Errorf("%s: %s", tr("Error saving sketch metadata"), err)
71+
os.Exit(errorcodes.ErrGeneric)
72+
}
73+
msg := fmt.Sprintf("%s: %s", tr("Default FQBN set to"), fqbn)
6974
feedback.Print(msg)
7075
}
71-
if err := sk.ExportMetadata(); err != nil {
72-
feedback.Errorf("%s: %s", tr("Error saving sketch metadata"), err)
73-
os.Exit(errorcodes.ErrGeneric)
74-
}
7576
}

0 commit comments

Comments
 (0)