Skip to content

Commit 0489a0a

Browse files
committed
Made 'board ...' command arguments variables local
1 parent 288494c commit 0489a0a

File tree

3 files changed

+30
-25
lines changed

3 files changed

+30
-25
lines changed

Diff for: internal/cli/board/attach.go

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626

2727
func initAttachCommand() *cobra.Command {
2828
var port arguments.Port
29+
var fqbn arguments.Fqbn
2930
attachCommand := &cobra.Command{
3031
Use: fmt.Sprintf("attach [-p <%s>] [-b <%s>] [%s]", tr("port"), tr("FQBN"), tr("sketchPath")),
3132
Short: tr("Attaches a sketch to a board."),

Diff for: internal/cli/board/details.go

+18-13
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,19 @@ import (
3131
"github.com/spf13/cobra"
3232
)
3333

34-
var (
35-
showFullDetails bool
36-
listProgrammers bool
37-
fqbn arguments.Fqbn
38-
)
39-
4034
func initDetailsCommand() *cobra.Command {
35+
var showFullDetails bool
36+
var listProgrammers bool
37+
var fqbn arguments.Fqbn
4138
var detailsCommand = &cobra.Command{
4239
Use: fmt.Sprintf("details -b <%s>", tr("FQBN")),
4340
Short: tr("Print details about a board."),
4441
Long: tr("Show information about a board, in particular if the board has options to be specified in the FQBN."),
4542
Example: " " + os.Args[0] + " board details -b arduino:avr:nano",
4643
Args: cobra.NoArgs,
47-
Run: runDetailsCommand,
44+
Run: func(cmd *cobra.Command, args []string) {
45+
runDetailsCommand(fqbn.String(), showFullDetails, listProgrammers)
46+
},
4847
}
4948

5049
fqbn.AddToCommand(detailsCommand)
@@ -55,27 +54,33 @@ func initDetailsCommand() *cobra.Command {
5554
return detailsCommand
5655
}
5756

58-
func runDetailsCommand(cmd *cobra.Command, args []string) {
57+
func runDetailsCommand(fqbn string, showFullDetails, listProgrammers bool) {
5958
inst := instance.CreateAndInit()
6059

6160
logrus.Info("Executing `arduino-cli board details`")
6261

6362
res, err := board.Details(context.Background(), &rpc.BoardDetailsRequest{
6463
Instance: inst,
65-
Fqbn: fqbn.String(),
64+
Fqbn: fqbn,
6665
})
6766

6867
if err != nil {
6968
feedback.Fatal(tr("Error getting board details: %v", err), feedback.ErrGeneric)
7069
}
7170

72-
feedback.PrintResult(detailsResult{details: res})
71+
feedback.PrintResult(detailsResult{
72+
details: res,
73+
listProgrammers: listProgrammers,
74+
showFullDetails: showFullDetails,
75+
})
7376
}
7477

7578
// output from this command requires special formatting, let's create a dedicated
7679
// feedback.Result implementation
7780
type detailsResult struct {
78-
details *rpc.BoardDetailsResponse
81+
details *rpc.BoardDetailsResponse
82+
listProgrammers bool
83+
showFullDetails bool
7984
}
8085

8186
func (dr detailsResult) Data() interface{} {
@@ -85,7 +90,7 @@ func (dr detailsResult) Data() interface{} {
8590
func (dr detailsResult) String() string {
8691
details := dr.details
8792

88-
if listProgrammers {
93+
if dr.listProgrammers {
8994
t := table.New()
9095
t.AddRow(tr("Id"), tr("Programmer name"))
9196
for _, programmer := range details.Programmers {
@@ -160,7 +165,7 @@ func (dr detailsResult) String() string {
160165
tab.SetColumnWidthMode(1, table.Average)
161166
for _, tool := range details.ToolsDependencies {
162167
tab.AddRow(tr("Required tool:"), tool.Packager+":"+tool.Name, tool.Version)
163-
if showFullDetails {
168+
if dr.showFullDetails {
164169
for _, sys := range tool.Systems {
165170
tab.AddRow("", tr("OS:"), sys.Host)
166171
tab.AddRow("", tr("File:"), sys.ArchiveFilename)

Diff for: internal/cli/board/list.go

+11-12
Original file line numberDiff line numberDiff line change
@@ -33,43 +33,42 @@ import (
3333
"github.com/spf13/cobra"
3434
)
3535

36-
var (
37-
timeoutArg arguments.DiscoveryTimeout
38-
watch bool
39-
)
40-
4136
func initListCommand() *cobra.Command {
37+
var timeoutArg arguments.DiscoveryTimeout
38+
var watch bool
39+
var fqbn arguments.Fqbn
4240
listCommand := &cobra.Command{
4341
Use: "list",
4442
Short: tr("List connected boards."),
4543
Long: tr("Detects and displays a list of boards connected to the current computer."),
4644
Example: " " + os.Args[0] + " board list --discovery-timeout 10s",
4745
Args: cobra.NoArgs,
48-
Run: runListCommand,
46+
Run: func(cmd *cobra.Command, args []string) {
47+
runListCommand(watch, timeoutArg.Get().Milliseconds(), fqbn.String())
48+
},
4949
}
5050

5151
timeoutArg.AddToCommand(listCommand)
5252
fqbn.AddToCommand(listCommand)
5353
listCommand.Flags().BoolVarP(&watch, "watch", "w", false, tr("Command keeps running and prints list of connected boards whenever there is a change."))
54-
5554
return listCommand
5655
}
5756

5857
// runListCommand detects and lists the connected arduino boards
59-
func runListCommand(cmd *cobra.Command, args []string) {
58+
func runListCommand(watch bool, timeout int64, fqbn string) {
6059
inst := instance.CreateAndInit()
6160

6261
logrus.Info("Executing `arduino-cli board list`")
6362

6463
if watch {
65-
watchList(cmd, inst)
64+
watchList(inst)
6665
return
6766
}
6867

6968
ports, discoveryErrors, err := board.List(&rpc.BoardListRequest{
7069
Instance: inst,
71-
Timeout: timeoutArg.Get().Milliseconds(),
72-
Fqbn: fqbn.String(),
70+
Timeout: timeout,
71+
Fqbn: fqbn,
7372
})
7473
var invalidFQBNErr *arduino.InvalidFQBNError
7574
if errors.As(err, &invalidFQBNErr) {
@@ -84,7 +83,7 @@ func runListCommand(cmd *cobra.Command, args []string) {
8483
feedback.PrintResult(result{ports})
8584
}
8685

87-
func watchList(cmd *cobra.Command, inst *rpc.Instance) {
86+
func watchList(inst *rpc.Instance) {
8887
eventsChan, closeCB, err := board.Watch(&rpc.BoardListWatchRequest{Instance: inst})
8988
if err != nil {
9089
feedback.Fatal(tr("Error detecting boards: %v", err), feedback.ErrNetwork)

0 commit comments

Comments
 (0)