Skip to content

Commit 8bd0d0f

Browse files
authored
Show if debugging is supported in board details command (#1067)
* Improved comments * Show if debugging is supported in board details command * Update i18n * Added test for 'debugging_supported' field
1 parent df9f204 commit 8bd0d0f

File tree

9 files changed

+219
-175
lines changed

9 files changed

+219
-175
lines changed

Diff for: arduino/cores/packagemanager/package_manager.go

+9-3
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,20 @@ func (pm *PackageManager) FindBoardWithFQBN(fqbnIn string) (*cores.Board, error)
124124
}
125125

126126
// ResolveFQBN returns, in order:
127+
//
127128
// - the Package pointed by the fqbn
129+
//
128130
// - the PlatformRelease pointed by the fqbn
131+
//
129132
// - the Board pointed by the fqbn
133+
//
130134
// - the build properties for the board considering also the
131-
// configuration part of the fqbn
135+
// configuration part of the fqbn
136+
//
132137
// - the PlatformRelease to be used for the build (if the board
133-
// requires a 3rd party core it may be different from the
134-
// PlatformRelease pointed by the fqbn)
138+
// requires a 3rd party core it may be different from the
139+
// PlatformRelease pointed by the fqbn)
140+
//
135141
// - an error if any of the above is not found
136142
//
137143
// In case of error the partial results found in the meantime are

Diff for: cli/board/details.go

+3
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,9 @@ func (dr detailsResult) String() string {
124124
t.AddRow(tr("Board name:"), details.Name)
125125
t.AddRow("FQBN:", details.Fqbn)
126126
addIfNotEmpty(tr("Board version:"), details.Version)
127+
if details.GetDebuggingSupported() {
128+
t.AddRow(tr("Debugging supported:"), table.NewCell("✔", color.New(color.FgGreen)))
129+
}
127130

128131
if details.Official {
129132
t.AddRow() // get some space from above

Diff for: commands/board/details.go

+9-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ func Details(ctx context.Context, req *rpc.BoardDetailsReq) (*rpc.BoardDetailsRe
3838
return nil, fmt.Errorf("parsing fqbn: %s", err)
3939
}
4040

41-
boardPackage, boardPlatform, board, _, _, err := pm.ResolveFQBN(fqbn)
41+
boardPackage, boardPlatform, board, boardProperties, boardRefPlatform, err := pm.ResolveFQBN(fqbn)
42+
4243
if err != nil {
4344
return nil, fmt.Errorf("loading board data: %s", err)
4445
}
@@ -50,6 +51,13 @@ func Details(ctx context.Context, req *rpc.BoardDetailsReq) (*rpc.BoardDetailsRe
5051
details.Official = fqbn.Package == "arduino"
5152
details.Version = board.PlatformRelease.Version.String()
5253

54+
details.DebuggingSupported = boardProperties.ContainsKey("debug.executable") ||
55+
boardPlatform.Properties.ContainsKey("debug.executable") ||
56+
(boardRefPlatform != nil && boardRefPlatform.Properties.ContainsKey("debug.executable")) ||
57+
// HOTFIX: Remove me when the `arduino:samd` core is updated
58+
boardPlatform.String() == "arduino:[email protected]" ||
59+
boardPlatform.String() == "arduino:[email protected]"
60+
5361
details.Package = &rpc.Package{
5462
Name: boardPackage.Name,
5563
Maintainer: boardPackage.Maintainer,

Diff for: commands/debug/debug_info.go

+1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ func getDebugProperties(req *debug.DebugConfigReq, pm *packagemanager.PackageMan
8181
toolProperties.Merge(boardProperties)
8282

8383
// HOTFIX: Remove me when the `arduino:samd` core is updated
84+
// (remember to remove it also in arduino/board/details.go)
8485
if !toolProperties.ContainsKey("debug.executable") {
8586
if platformRelease.String() == "arduino:[email protected]" || platformRelease.String() == "arduino:[email protected]" {
8687
toolProperties.Set("debug.executable", "{build.path}/{build.project_name}.elf")

Diff for: i18n/data/en.po

+27-23
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,14 @@ msgstr "Board name:"
2121
msgid "Board version:"
2222
msgstr "Board version:"
2323

24-
#: cli/board/details.go:169
24+
#: cli/board/details.go:172
2525
msgid "Checksum:"
2626
msgstr "Checksum:"
2727

28+
#: cli/board/details.go:128
29+
msgid "Debugging supported:"
30+
msgstr "Debugging supported:"
31+
2832
#: cli/board/details.go:60
2933
#: cli/board/details.go:75
3034
msgid "Error getting board details: %v"
@@ -34,7 +38,7 @@ msgstr "Error getting board details: %v"
3438
msgid "Examples:"
3539
msgstr "Examples:"
3640

37-
#: cli/board/details.go:167
41+
#: cli/board/details.go:170
3842
msgid "File:"
3943
msgstr "File:"
4044

@@ -47,75 +51,75 @@ msgid "Global Flags:"
4751
msgstr "Global Flags:"
4852

4953
#: cli/board/details.go:97
50-
#: cli/board/details.go:195
54+
#: cli/board/details.go:198
5155
msgid "Id"
5256
msgstr "Id"
5357

54-
#: cli/board/details.go:137
58+
#: cli/board/details.go:140
5559
msgid "Identification properties:"
5660
msgstr "Identification properties:"
5761

58-
#: cli/board/details.go:195
62+
#: cli/board/details.go:198
5963
msgid "Name"
6064
msgstr "Name"
6165

62-
#: cli/board/details.go:166
66+
#: cli/board/details.go:169
6367
msgid "OS:"
6468
msgstr "OS:"
6569

66-
#: cli/board/details.go:130
70+
#: cli/board/details.go:133
6771
msgid "Official Arduino board:"
6872
msgstr "Official Arduino board:"
6973

70-
#: cli/board/details.go:178
74+
#: cli/board/details.go:181
7175
msgid "Option:"
7276
msgstr "Option:"
7377

74-
#: cli/board/details.go:146
78+
#: cli/board/details.go:149
7579
msgid "Package URL:"
7680
msgstr "Package URL:"
7781

78-
#: cli/board/details.go:145
82+
#: cli/board/details.go:148
7983
msgid "Package maintainer:"
8084
msgstr "Package maintainer:"
8185

82-
#: cli/board/details.go:144
86+
#: cli/board/details.go:147
8387
msgid "Package name:"
8488
msgstr "Package name:"
8589

86-
#: cli/board/details.go:148
90+
#: cli/board/details.go:151
8791
msgid "Package online help:"
8892
msgstr "Package online help:"
8993

90-
#: cli/board/details.go:147
94+
#: cli/board/details.go:150
9195
msgid "Package website:"
9296
msgstr "Package website:"
9397

94-
#: cli/board/details.go:154
98+
#: cli/board/details.go:157
9599
msgid "Platform URL:"
96100
msgstr "Platform URL:"
97101

98-
#: cli/board/details.go:153
102+
#: cli/board/details.go:156
99103
msgid "Platform architecture:"
100104
msgstr "Platform architecture:"
101105

102-
#: cli/board/details.go:152
106+
#: cli/board/details.go:155
103107
msgid "Platform category:"
104108
msgstr "Platform category:"
105109

106-
#: cli/board/details.go:159
110+
#: cli/board/details.go:162
107111
msgid "Platform checksum:"
108112
msgstr "Platform checksum:"
109113

110-
#: cli/board/details.go:155
114+
#: cli/board/details.go:158
111115
msgid "Platform file name:"
112116
msgstr "Platform file name:"
113117

114-
#: cli/board/details.go:151
118+
#: cli/board/details.go:154
115119
msgid "Platform name:"
116120
msgstr "Platform name:"
117121

118-
#: cli/board/details.go:157
122+
#: cli/board/details.go:160
119123
msgid "Platform size (bytes):"
120124
msgstr "Platform size (bytes):"
121125

@@ -127,11 +131,11 @@ msgstr "Print details about a board."
127131
msgid "Programmer name"
128132
msgstr "Programmer name"
129133

130-
#: cli/board/details.go:195
134+
#: cli/board/details.go:198
131135
msgid "Programmers:"
132136
msgstr "Programmers:"
133137

134-
#: cli/board/details.go:163
138+
#: cli/board/details.go:166
135139
msgid "Required tool:"
136140
msgstr "Required tool:"
137141

@@ -147,7 +151,7 @@ msgstr "Show information about a board, in particular if the board has options t
147151
msgid "Show list of available programmers"
148152
msgstr "Show list of available programmers"
149153

150-
#: cli/board/details.go:168
154+
#: cli/board/details.go:171
151155
msgid "Size (bytes):"
152156
msgstr "Size (bytes):"
153157

0 commit comments

Comments
 (0)