Skip to content

Commit c829b55

Browse files
committed
Use enumeration for LibraryLocation field in grpc API
The enumeration is also reused inside the arduino package to reduce duplication.
1 parent 365d06c commit c829b55

File tree

12 files changed

+211
-325
lines changed

12 files changed

+211
-325
lines changed

arduino/libraries/libraries.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"fmt"
2020

2121
"github.com/arduino/arduino-cli/arduino/cores"
22+
rpc "github.com/arduino/arduino-cli/rpc/commands"
2223
paths "github.com/arduino/go-paths-helper"
2324
properties "github.com/arduino/go-properties-orderedmap"
2425
semver "go.bug.st/relaxed-semver"
@@ -60,7 +61,7 @@ type Library struct {
6061
InstallDir *paths.Path
6162
SourceDir *paths.Path
6263
UtilityDir *paths.Path
63-
Location LibraryLocation
64+
Location rpc.LibraryLocation
6465
ContainerPlatform *cores.PlatformRelease `json:""`
6566
Layout LibraryLayout
6667
RealName string
@@ -133,13 +134,13 @@ func (library *Library) PriorityForArchitecture(arch string) uint8 {
133134
}
134135

135136
switch library.Location {
136-
case IDEBuiltIn:
137+
case rpc.LibraryLocation_ide_builtin:
137138
return bonus + 0x00
138-
case ReferencedPlatformBuiltIn:
139+
case rpc.LibraryLocation_referenced_platform_builtin:
139140
return bonus + 0x01
140-
case PlatformBuiltIn:
141+
case rpc.LibraryLocation_platform_builtin:
141142
return bonus + 0x02
142-
case User:
143+
case rpc.LibraryLocation_user_dir:
143144
return bonus + 0x03
144145
}
145146
panic(fmt.Sprintf("Invalid library location: %d", library.Location))

arduino/libraries/libraries_location.go

Lines changed: 0 additions & 84 deletions
This file was deleted.

arduino/libraries/librariesmanager/install.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/arduino/arduino-cli/arduino/libraries"
2323
"github.com/arduino/arduino-cli/arduino/libraries/librariesindex"
2424
"github.com/arduino/arduino-cli/arduino/utils"
25+
rpc "github.com/arduino/arduino-cli/rpc/commands"
2526
paths "github.com/arduino/go-paths-helper"
2627
)
2728

@@ -40,7 +41,7 @@ func (lm *LibrariesManager) InstallPrerequisiteCheck(indexLibrary *librariesinde
4041
var replaced *libraries.Library
4142
if installedLibs, have := lm.Libraries[saneName]; have {
4243
for _, installedLib := range installedLibs.Alternatives {
43-
if installedLib.Location != libraries.User {
44+
if installedLib.Location != rpc.LibraryLocation_user_dir {
4445
continue
4546
}
4647
if installedLib.Version.Equal(indexLibrary.Version) {

arduino/libraries/librariesmanager/librariesmanager.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"github.com/arduino/arduino-cli/arduino/libraries"
2424
"github.com/arduino/arduino-cli/arduino/libraries/librariesindex"
2525
"github.com/arduino/arduino-cli/arduino/utils"
26+
rpc "github.com/arduino/arduino-cli/rpc/commands"
2627
paths "github.com/arduino/go-paths-helper"
2728
"github.com/pmylund/sortutil"
2829
"github.com/sirupsen/logrus"
@@ -43,7 +44,7 @@ type LibrariesManager struct {
4344
// LibrariesDir is a directory containing libraries
4445
type LibrariesDir struct {
4546
Path *paths.Path
46-
Location libraries.LibraryLocation
47+
Location rpc.LibraryLocation
4748
PlatformRelease *cores.PlatformRelease
4849
}
4950

@@ -122,7 +123,7 @@ func (sc *LibrariesManager) LoadIndex() error {
122123
// AddLibrariesDir adds path to the list of directories
123124
// to scan when searching for libraries. If a path is already
124125
// in the list it is ignored.
125-
func (sc *LibrariesManager) AddLibrariesDir(path *paths.Path, location libraries.LibraryLocation) {
126+
func (sc *LibrariesManager) AddLibrariesDir(path *paths.Path, location rpc.LibraryLocation) {
126127
for _, dir := range sc.LibrariesDir {
127128
if dir.Path.EquivalentTo(path) {
128129
return
@@ -138,7 +139,7 @@ func (sc *LibrariesManager) AddLibrariesDir(path *paths.Path, location libraries
138139
// AddPlatformReleaseLibrariesDir add the libraries directory in the
139140
// specified PlatformRelease to the list of directories to scan when
140141
// searching for libraries.
141-
func (sc *LibrariesManager) AddPlatformReleaseLibrariesDir(plaftormRelease *cores.PlatformRelease, location libraries.LibraryLocation) {
142+
func (sc *LibrariesManager) AddPlatformReleaseLibrariesDir(plaftormRelease *cores.PlatformRelease, location rpc.LibraryLocation) {
142143
path := plaftormRelease.GetLibrariesDir()
143144
if path == nil {
144145
return
@@ -168,7 +169,7 @@ func (sc *LibrariesManager) RescanLibraries() error {
168169

169170
func (sc *LibrariesManager) getUserLibrariesDir() *paths.Path {
170171
for _, dir := range sc.LibrariesDir {
171-
if dir.Location == libraries.User {
172+
if dir.Location == rpc.LibraryLocation_user_dir {
172173
return dir.Path
173174
}
174175
}
@@ -216,7 +217,7 @@ func (sc *LibrariesManager) FindByReference(libRef *librariesindex.Reference) *l
216217
// TODO: Move "search into user" into another method...
217218
if libRef.Version == nil {
218219
for _, candidate := range alternatives.Alternatives {
219-
if candidate.Location == libraries.User {
220+
if candidate.Location == rpc.LibraryLocation_user_dir {
220221
return candidate
221222
}
222223
}

arduino/libraries/loader.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,14 @@ import (
1919
"fmt"
2020
"strings"
2121

22+
rpc "github.com/arduino/arduino-cli/rpc/commands"
2223
"github.com/arduino/go-paths-helper"
2324
properties "github.com/arduino/go-properties-orderedmap"
2425
semver "go.bug.st/relaxed-semver"
2526
)
2627

2728
// Load loads a library from the given LibraryLocation
28-
func Load(libDir *paths.Path, location LibraryLocation) (*Library, error) {
29+
func Load(libDir *paths.Path, location rpc.LibraryLocation) (*Library, error) {
2930
if libDir.Join("library.properties").Exist() {
3031
return makeNewLibrary(libDir, location)
3132
}
@@ -39,7 +40,7 @@ func addUtilityDirectory(library *Library) {
3940
}
4041
}
4142

42-
func makeNewLibrary(libraryDir *paths.Path, location LibraryLocation) (*Library, error) {
43+
func makeNewLibrary(libraryDir *paths.Path, location rpc.LibraryLocation) (*Library, error) {
4344
libProperties, err := properties.Load(libraryDir.Join("library.properties").String())
4445
if err != nil {
4546
return nil, fmt.Errorf("loading library.properties: %s", err)
@@ -110,7 +111,7 @@ func makeNewLibrary(libraryDir *paths.Path, location LibraryLocation) (*Library,
110111
return library, nil
111112
}
112113

113-
func makeLegacyLibrary(path *paths.Path, location LibraryLocation) (*Library, error) {
114+
func makeLegacyLibrary(path *paths.Path, location rpc.LibraryLocation) (*Library, error) {
114115
library := &Library{
115116
InstallDir: path,
116117
Location: location,

cli/lib/list.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ func (ir installedResult) String() string {
102102
lastName = name
103103
}
104104

105-
location := lib.GetLocation()
105+
location := lib.GetLocation().String()
106106
if lib.ContainerPlatform != "" {
107-
location = lib.GetContainerPlatform()
107+
location += " " + lib.GetContainerPlatform()
108108
}
109109

110110
if libMeta.GetRelease() != nil {

commands/instances.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"github.com/arduino/arduino-cli/arduino/cores"
2828
"github.com/arduino/arduino-cli/arduino/cores/packageindex"
2929
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
30-
"github.com/arduino/arduino-cli/arduino/libraries"
3130
"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager"
3231
"github.com/arduino/arduino-cli/cli/globals"
3332
"github.com/arduino/arduino-cli/configuration"
@@ -323,19 +322,19 @@ func createInstance(ctx context.Context, getLibOnly bool) (*createInstanceResult
323322

324323
// Add IDE builtin libraries dir
325324
if bundledLibsDir := configuration.IDEBundledLibrariesDir(); bundledLibsDir != nil {
326-
res.Lm.AddLibrariesDir(bundledLibsDir, libraries.IDEBuiltIn)
325+
res.Lm.AddLibrariesDir(bundledLibsDir, rpc.LibraryLocation_ide_builtin)
327326
}
328327

329328
// Add user libraries dir
330329
libDir := configuration.LibrariesDir()
331-
res.Lm.AddLibrariesDir(libDir, libraries.User)
330+
res.Lm.AddLibrariesDir(libDir, rpc.LibraryLocation_user_dir)
332331

333332
// Add libraries dirs from installed platforms
334333
if res.Pm != nil {
335334
for _, targetPackage := range res.Pm.Packages {
336335
for _, platform := range targetPackage.Platforms {
337336
if platformRelease := res.Pm.GetInstalledPlatformRelease(platform); platformRelease != nil {
338-
res.Lm.AddPlatformReleaseLibrariesDir(platformRelease, libraries.PlatformBuiltIn)
337+
res.Lm.AddPlatformReleaseLibrariesDir(platformRelease, rpc.LibraryLocation_platform_builtin)
339338
}
340339
}
341340
}

commands/lib/list.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func listLibraries(lm *librariesmanager.LibrariesManager, updatable bool, all bo
5858
for _, libAlternatives := range lm.Libraries {
5959
for _, lib := range libAlternatives.Alternatives {
6060
if !all {
61-
if lib.Location != libraries.User {
61+
if lib.Location != rpc.LibraryLocation_user_dir {
6262
continue
6363
}
6464
}
@@ -107,7 +107,7 @@ func GetOutputLibrary(lib *libraries.Library) *rpc.Library {
107107
InstallDir: insdir,
108108
SourceDir: srcdir,
109109
UtilityDir: utldir,
110-
Location: lib.Location.String(),
110+
Location: lib.Location,
111111
ContainerPlatform: cntplat,
112112
Layout: lib.Layout.String(),
113113
RealName: lib.RealName,

legacy/builder/libraries_loader.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ package builder
1818
import (
1919
"os"
2020

21-
"github.com/arduino/arduino-cli/arduino/libraries"
2221
"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager"
2322
"github.com/arduino/arduino-cli/arduino/libraries/librariesresolver"
2423
"github.com/arduino/arduino-cli/legacy/builder/i18n"
2524
"github.com/arduino/arduino-cli/legacy/builder/types"
25+
rpc "github.com/arduino/arduino-cli/rpc/commands"
2626
)
2727

2828
type LibrariesLoader struct{}
@@ -36,7 +36,7 @@ func (s *LibrariesLoader) Run(ctx *types.Context) error {
3636
return i18n.WrapError(err)
3737
}
3838
for _, folder := range builtInLibrariesFolders {
39-
lm.AddLibrariesDir(folder, libraries.IDEBuiltIn)
39+
lm.AddLibrariesDir(folder, rpc.LibraryLocation_ide_builtin)
4040
}
4141

4242
debugLevel := ctx.DebugLevel
@@ -45,16 +45,16 @@ func (s *LibrariesLoader) Run(ctx *types.Context) error {
4545
actualPlatform := ctx.ActualPlatform
4646
platform := ctx.TargetPlatform
4747
if actualPlatform != platform {
48-
lm.AddPlatformReleaseLibrariesDir(actualPlatform, libraries.ReferencedPlatformBuiltIn)
48+
lm.AddPlatformReleaseLibrariesDir(actualPlatform, rpc.LibraryLocation_referenced_platform_builtin)
4949
}
50-
lm.AddPlatformReleaseLibrariesDir(platform, libraries.PlatformBuiltIn)
50+
lm.AddPlatformReleaseLibrariesDir(platform, rpc.LibraryLocation_platform_builtin)
5151

5252
librariesFolders := ctx.OtherLibrariesDirs
5353
if err := librariesFolders.ToAbs(); err != nil {
5454
return i18n.WrapError(err)
5555
}
5656
for _, folder := range librariesFolders {
57-
lm.AddLibrariesDir(folder, libraries.User)
57+
lm.AddLibrariesDir(folder, rpc.LibraryLocation_user_dir)
5858
}
5959

6060
if err := lm.RescanLibraries(); err != nil {

0 commit comments

Comments
 (0)