@@ -26,6 +26,7 @@ import (
26
26
"github.com/arduino/arduino-cli/commands/lib"
27
27
"github.com/arduino/arduino-cli/configuration"
28
28
"github.com/arduino/arduino-cli/internal/cli/feedback"
29
+ "github.com/arduino/arduino-cli/internal/cli/feedback/result"
29
30
"github.com/arduino/arduino-cli/internal/cli/instance"
30
31
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
31
32
"github.com/arduino/go-paths-helper"
@@ -128,8 +129,8 @@ func runSearchCommand(args []string, namesOnly bool, omitReleasesDetails bool) {
128
129
feedback .Fatal (tr ("Error searching for Libraries: %v" , err ), feedback .ErrGeneric )
129
130
}
130
131
131
- feedback .PrintResult (result {
132
- results : searchResp ,
132
+ feedback .PrintResult (librarySearchResult {
133
+ results : result . NewLibrarySearchResponse ( searchResp ) ,
133
134
namesOnly : namesOnly ,
134
135
})
135
136
@@ -138,12 +139,12 @@ func runSearchCommand(args []string, namesOnly bool, omitReleasesDetails bool) {
138
139
139
140
// output from this command requires special formatting, let's create a dedicated
140
141
// feedback.Result implementation
141
- type result struct {
142
- results * rpc .LibrarySearchResponse
142
+ type librarySearchResult struct {
143
+ results * result .LibrarySearchResponse
143
144
namesOnly bool
144
145
}
145
146
146
- func (res result ) Data () interface {} {
147
+ func (res librarySearchResult ) Data () interface {} {
147
148
if res .namesOnly {
148
149
type LibName struct {
149
150
Name string `json:"name"`
@@ -154,33 +155,36 @@ func (res result) Data() interface{} {
154
155
}
155
156
156
157
names := []LibName {}
157
- results := res .results .GetLibraries ()
158
- for _ , lib := range results {
158
+ for _ , lib := range res .results .Libraries {
159
+ if lib == nil {
160
+ continue
161
+ }
159
162
names = append (names , LibName {lib .Name })
160
163
}
161
164
162
- return NamesOnly {
163
- names ,
164
- }
165
+ return NamesOnly {names }
165
166
}
166
167
167
168
return res .results
168
169
}
169
170
170
- func (res result ) String () string {
171
- results := res .results .GetLibraries ()
171
+ func (res librarySearchResult ) String () string {
172
+ results := res .results .Libraries
172
173
if len (results ) == 0 {
173
174
return tr ("No libraries matching your search." )
174
175
}
175
176
176
177
var out strings.Builder
177
178
178
- if res .results .GetStatus ( ) == rpc .LibrarySearchStatus_LIBRARY_SEARCH_STATUS_FAILED {
179
+ if string ( res .results .Status ) == rpc .LibrarySearchStatus_name [ int32 ( rpc . LibrarySearchStatus_LIBRARY_SEARCH_STATUS_FAILED )] {
179
180
out .WriteString (tr ("No libraries matching your search.\n Did you mean...\n " ))
180
181
}
181
182
182
183
for _ , lib := range results {
183
- if res .results .GetStatus () == rpc .LibrarySearchStatus_LIBRARY_SEARCH_STATUS_SUCCESS {
184
+ if lib == nil {
185
+ continue
186
+ }
187
+ if string (res .results .Status ) == rpc .LibrarySearchStatus_name [int32 (rpc .LibrarySearchStatus_LIBRARY_SEARCH_STATUS_SUCCESS )] {
184
188
out .WriteString (tr (`Name: "%s"` , lib .Name ) + "\n " )
185
189
if res .namesOnly {
186
190
continue
@@ -190,14 +194,17 @@ func (res result) String() string {
190
194
continue
191
195
}
192
196
193
- latest := lib .GetLatest ()
197
+ latest := lib .Latest
194
198
195
199
deps := []string {}
196
- for _ , dep := range latest .GetDependencies () {
197
- if dep .GetVersionConstraint () == "" {
198
- deps = append (deps , dep .GetName ())
200
+ for _ , dep := range latest .Dependencies {
201
+ if dep == nil {
202
+ continue
203
+ }
204
+ if dep .VersionConstraint == "" {
205
+ deps = append (deps , dep .Name )
199
206
} else {
200
- deps = append (deps , dep .GetName () + " (" + dep .GetVersionConstraint () + ")" )
207
+ deps = append (deps , dep .Name + " (" + dep .VersionConstraint + ")" )
201
208
}
202
209
}
203
210
@@ -212,7 +219,7 @@ func (res result) String() string {
212
219
out .WriteString (fmt .Sprintf (" " + tr ("Category: %s" )+ "\n " , latest .Category ))
213
220
out .WriteString (fmt .Sprintf (" " + tr ("Architecture: %s" )+ "\n " , strings .Join (latest .Architectures , ", " )))
214
221
out .WriteString (fmt .Sprintf (" " + tr ("Types: %s" )+ "\n " , strings .Join (latest .Types , ", " )))
215
- out .WriteString (fmt .Sprintf (" " + tr ("Versions: %s" )+ "\n " , strings .ReplaceAll (fmt .Sprint (lib .GetAvailableVersions () ), " " , ", " )))
222
+ out .WriteString (fmt .Sprintf (" " + tr ("Versions: %s" )+ "\n " , strings .ReplaceAll (fmt .Sprint (lib .AvailableVersions ), " " , ", " )))
216
223
if len (latest .ProvidesIncludes ) > 0 {
217
224
out .WriteString (fmt .Sprintf (" " + tr ("Provides includes: %s" )+ "\n " , strings .Join (latest .ProvidesIncludes , ", " )))
218
225
}
0 commit comments