Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4b874a0

Browse files
authored
Added dependencies, license and provides_includes fields in 'lib search' (#599)
* Added 'license' and 'provides_includes' fields in lib search * Added 'dependencies' field in lib search * Do not output empty field in 'lib search' Fields 'license', 'provided includes' and 'dependencies' are printed only if populated.
1 parent 561618a commit 4b874a0

File tree

6 files changed

+267
-142
lines changed

6 files changed

+267
-142
lines changed

‎arduino/libraries/librariesindex/index.go‎

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,19 @@ type Library struct {
4141

4242
// Release is a release of a library available for download
4343
type Release struct {
44-
Author string
45-
Version *semver.Version
46-
Dependencies []semver.Dependency
47-
Maintainer string
48-
Sentence string
49-
Paragraph string
50-
Website string
51-
Category string
52-
Architectures []string
53-
Types []string
54-
Resource *resources.DownloadResource
44+
Author string
45+
Version *semver.Version
46+
Dependencies []semver.Dependency
47+
Maintainer string
48+
Sentence string
49+
Paragraph string
50+
Website string
51+
Category string
52+
Architectures []string
53+
Types []string
54+
Resource *resources.DownloadResource
55+
License string
56+
ProvidesIncludes []string
5557

5658
Library *Library `json:"-"`
5759
}

‎arduino/libraries/librariesindex/json.go‎

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,23 @@ type indexJSON struct {
2929
}
3030

3131
type indexRelease struct {
32-
Name string `json:"name,required"`
33-
Version *semver.Version `json:"version,required"`
34-
Author string `json:"author"`
35-
Maintainer string `json:"maintainer"`
36-
Sentence string `json:"sentence"`
37-
Paragraph string `json:"paragraph"`
38-
Website string `json:"website"`
39-
Category string `json:"category"`
40-
Architectures []string `json:"architectures"`
41-
Types []string `json:"types"`
42-
URL string `json:"url"`
43-
ArchiveFileName string `json:"archiveFileName"`
44-
Size int64 `json:"size"`
45-
Checksum string `json:"checksum"`
46-
Dependencies []*indexDependency `json:"dependencies,omitempty"`
32+
Name string `json:"name,required"`
33+
Version *semver.Version `json:"version,required"`
34+
Author string `json:"author"`
35+
Maintainer string `json:"maintainer"`
36+
Sentence string `json:"sentence"`
37+
Paragraph string `json:"paragraph"`
38+
Website string `json:"website"`
39+
Category string `json:"category"`
40+
Architectures []string `json:"architectures"`
41+
Types []string `json:"types"`
42+
URL string `json:"url"`
43+
ArchiveFileName string `json:"archiveFileName"`
44+
Size int64 `json:"size"`
45+
Checksum string `json:"checksum"`
46+
Dependencies []*indexDependency `json:"dependencies,omitempty"`
47+
License string `json:"license"`
48+
ProvidesIncludes []string `json:"providesIncludes"`
4749
}
4850

4951
type indexDependency struct {
@@ -107,8 +109,10 @@ func (indexLib *indexRelease) extractReleaseIn(library *Library) {
107109
Checksum: indexLib.Checksum,
108110
CachePath: "libraries",
109111
},
110-
Library: library,
111-
Dependencies: indexLib.extractDependencies(),
112+
Library: library,
113+
Dependencies: indexLib.extractDependencies(),
114+
License: indexLib.License,
115+
ProvidesIncludes: indexLib.ProvidesIncludes,
112116
}
113117
library.Releases[indexLib.Version.String()] = release
114118
if library.Latest == nil || library.Latest.Version.LessThan(release.Version) {

‎cli/lib/search.go‎

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -113,21 +113,41 @@ func (res result) String() string {
113113

114114
var out strings.Builder
115115

116-
for _, lsr := range results {
117-
out.WriteString(fmt.Sprintf("Name: \"%s\"\n", lsr.Name))
116+
for _, lib := range results {
117+
out.WriteString(fmt.Sprintf("Name: \"%s\"\n", lib.Name))
118118
if res.namesOnly {
119119
continue
120120
}
121121

122-
out.WriteString(fmt.Sprintf(" Author: %s\n", lsr.GetLatest().Author))
123-
out.WriteString(fmt.Sprintf(" Maintainer: %s\n", lsr.GetLatest().Maintainer))
124-
out.WriteString(fmt.Sprintf(" Sentence: %s\n", lsr.GetLatest().Sentence))
125-
out.WriteString(fmt.Sprintf(" Paragraph: %s\n", lsr.GetLatest().Paragraph))
126-
out.WriteString(fmt.Sprintf(" Website: %s\n", lsr.GetLatest().Website))
127-
out.WriteString(fmt.Sprintf(" Category: %s\n", lsr.GetLatest().Category))
128-
out.WriteString(fmt.Sprintf(" Architecture: %s\n", strings.Join(lsr.GetLatest().Architectures, ", ")))
129-
out.WriteString(fmt.Sprintf(" Types: %s\n", strings.Join(lsr.GetLatest().Types, ", ")))
130-
out.WriteString(fmt.Sprintf(" Versions: %s\n", strings.Replace(fmt.Sprint(versionsFromSearchedLibrary(lsr)), " ", ", ", -1)))
122+
latest := lib.GetLatest()
123+
124+
deps := []string{}
125+
for _, dep := range latest.GetDependencies() {
126+
if dep.GetVersionConstraint() == "" {
127+
deps = append(deps, dep.GetName())
128+
} else {
129+
deps = append(deps, dep.GetName()+" ("+dep.GetVersionConstraint()+")")
130+
}
131+
}
132+
133+
out.WriteString(fmt.Sprintf(" Author: %s\n", latest.Author))
134+
out.WriteString(fmt.Sprintf(" Maintainer: %s\n", latest.Maintainer))
135+
out.WriteString(fmt.Sprintf(" Sentence: %s\n", latest.Sentence))
136+
out.WriteString(fmt.Sprintf(" Paragraph: %s\n", latest.Paragraph))
137+
out.WriteString(fmt.Sprintf(" Website: %s\n", latest.Website))
138+
if latest.License != "" {
139+
out.WriteString(fmt.Sprintf(" License: %s\n", latest.License))
140+
}
141+
out.WriteString(fmt.Sprintf(" Category: %s\n", latest.Category))
142+
out.WriteString(fmt.Sprintf(" Architecture: %s\n", strings.Join(latest.Architectures, ", ")))
143+
out.WriteString(fmt.Sprintf(" Types: %s\n", strings.Join(latest.Types, ", ")))
144+
out.WriteString(fmt.Sprintf(" Versions: %s\n", strings.Replace(fmt.Sprint(versionsFromSearchedLibrary(lib)), " ", ", ", -1)))
145+
if len(latest.ProvidesIncludes) > 0 {
146+
out.WriteString(fmt.Sprintf(" Provides includes: %s\n", strings.Join(latest.ProvidesIncludes, ", ")))
147+
}
148+
if len(latest.Dependencies) > 0 {
149+
out.WriteString(fmt.Sprintf(" Dependencies: %s\n", strings.Join(deps, ", ")))
150+
}
131151
}
132152

133153
return fmt.Sprintf("%s", out.String())

‎commands/lib/search.go‎

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"github.com/arduino/arduino-cli/arduino/libraries/librariesindex"
2424
"github.com/arduino/arduino-cli/commands"
2525
rpc "github.com/arduino/arduino-cli/rpc/commands"
26+
semver "go.bug.st/relaxed-semver"
2627
)
2728

2829
// LibrarySearch FIXMEDOC
@@ -60,15 +61,18 @@ func LibrarySearch(ctx context.Context, req *rpc.LibrarySearchReq) (*rpc.Library
6061
// GetLibraryParameters FIXMEDOC
6162
func GetLibraryParameters(rel *librariesindex.Release) *rpc.LibraryRelease {
6263
return &rpc.LibraryRelease{
63-
Author: rel.Author,
64-
Version: rel.Version.String(),
65-
Maintainer: rel.Maintainer,
66-
Sentence: rel.Sentence,
67-
Paragraph: rel.Paragraph,
68-
Website: rel.Website,
69-
Category: rel.Category,
70-
Architectures: rel.Architectures,
71-
Types: rel.Types,
64+
Author: rel.Author,
65+
Version: rel.Version.String(),
66+
Maintainer: rel.Maintainer,
67+
Sentence: rel.Sentence,
68+
Paragraph: rel.Paragraph,
69+
Website: rel.Website,
70+
Category: rel.Category,
71+
Architectures: rel.Architectures,
72+
Types: rel.Types,
73+
License: rel.License,
74+
ProvidesIncludes: rel.ProvidesIncludes,
75+
Dependencies: getLibraryDependenciesParameter(rel.GetDependencies()),
7276
Resources: &rpc.DownloadResource{
7377
Url: rel.Resource.URL,
7478
Archivefilename: rel.Resource.ArchiveFileName,
@@ -78,3 +82,14 @@ func GetLibraryParameters(rel *librariesindex.Release) *rpc.LibraryRelease {
7882
},
7983
}
8084
}
85+
86+
func getLibraryDependenciesParameter(deps []semver.Dependency) []*rpc.LibraryDependency {
87+
res := []*rpc.LibraryDependency{}
88+
for _, dep := range deps {
89+
res = append(res, &rpc.LibraryDependency{
90+
Name: dep.GetName(),
91+
VersionConstraint: dep.GetConstraint().String(),
92+
})
93+
}
94+
return res
95+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /