Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 9b83d17

Browse files
committedMar 2, 2020
Use enumeration for LibraryLocation field in grpc API
The enumeration is also reused inside the arduino package to reduce duplication.
1 parent 4b874a0 commit 9b83d17

File tree

13 files changed

+148
-226
lines changed

13 files changed

+148
-226
lines changed
 

‎arduino/libraries/libraries.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package libraries
1717

1818
import (
1919
"github.com/arduino/arduino-cli/arduino/cores"
20+
rpc "github.com/arduino/arduino-cli/rpc/commands"
2021
paths "github.com/arduino/go-paths-helper"
2122
properties "github.com/arduino/go-properties-orderedmap"
2223
semver "go.bug.st/relaxed-semver"
@@ -58,7 +59,7 @@ type Library struct {
5859
InstallDir *paths.Path
5960
SourceDir *paths.Path
6061
UtilityDir *paths.Path
61-
Location LibraryLocation
62+
Location rpc.LibraryLocation
6263
ContainerPlatform *cores.PlatformRelease `json:""`
6364
Layout LibraryLayout
6465
RealName string

‎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 {
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 {
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 {
220221
return candidate
221222
}
222223
}

‎arduino/libraries/librariesresolver/cpp.go

Lines changed: 5 additions & 4 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/librariesmanager"
2525
"github.com/arduino/arduino-cli/arduino/utils"
26+
rpc "github.com/arduino/arduino-cli/rpc/commands"
2627
"github.com/schollz/closestmatch"
2728
"github.com/sirupsen/logrus"
2829
)
@@ -152,13 +153,13 @@ func computePriority(lib *libraries.Library, header, arch string) int {
152153
}
153154

154155
switch lib.Location {
155-
case libraries.IDEBuiltIn:
156+
case rpc.LibraryLocation_ide_builtin:
156157
priority += 0
157-
case libraries.ReferencedPlatformBuiltIn:
158+
case rpc.LibraryLocation_referenced_platform_builtin:
158159
priority++
159-
case libraries.PlatformBuiltIn:
160+
case rpc.LibraryLocation_platform_builtin:
160161
priority += 2
161-
case libraries.User:
162+
case rpc.LibraryLocation_user:
162163
priority += 3
163164
default:
164165
panic(fmt.Sprintf("Invalid library location: %d", lib.Location))

‎arduino/libraries/librariesresolver/cpp_test.go

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,18 @@ import (
1919
"testing"
2020

2121
"github.com/arduino/arduino-cli/arduino/libraries"
22+
rpc "github.com/arduino/arduino-cli/rpc/commands"
2223
"github.com/stretchr/testify/require"
2324
)
2425

25-
var l1 = &libraries.Library{Name: "Calculus Lib", Location: libraries.User}
26-
var l2 = &libraries.Library{Name: "Calculus Lib-master", Location: libraries.User}
27-
var l3 = &libraries.Library{Name: "Calculus Lib Improved", Location: libraries.User}
28-
var l4 = &libraries.Library{Name: "Another Calculus Lib", Location: libraries.User}
29-
var l5 = &libraries.Library{Name: "Yet Another Calculus Lib Improved", Location: libraries.User}
30-
var l6 = &libraries.Library{Name: "Calculus Unified Lib", Location: libraries.User}
31-
var l7 = &libraries.Library{Name: "AnotherLib", Location: libraries.User}
32-
var bundleServo = &libraries.Library{Name: "Servo", Location: libraries.IDEBuiltIn, Architectures: []string{"avr", "sam", "samd"}}
26+
var l1 = &libraries.Library{Name: "Calculus Lib", Location: rpc.LibraryLocation_user}
27+
var l2 = &libraries.Library{Name: "Calculus Lib-master", Location: rpc.LibraryLocation_user}
28+
var l3 = &libraries.Library{Name: "Calculus Lib Improved", Location: rpc.LibraryLocation_user}
29+
var l4 = &libraries.Library{Name: "Another Calculus Lib", Location: rpc.LibraryLocation_user}
30+
var l5 = &libraries.Library{Name: "Yet Another Calculus Lib Improved", Location: rpc.LibraryLocation_user}
31+
var l6 = &libraries.Library{Name: "Calculus Unified Lib", Location: rpc.LibraryLocation_user}
32+
var l7 = &libraries.Library{Name: "AnotherLib", Location: rpc.LibraryLocation_user}
33+
var bundleServo = &libraries.Library{Name: "Servo", Location: rpc.LibraryLocation_ide_builtin, Architectures: []string{"avr", "sam", "samd"}}
3334

3435
func runResolver(include string, arch string, libs ...*libraries.Library) *libraries.Library {
3536
libraryList := libraries.List{}
@@ -42,19 +43,19 @@ func runResolver(include string, arch string, libs ...*libraries.Library) *libra
4243
func TestArchitecturePriority(t *testing.T) {
4344
userServo := &libraries.Library{
4445
Name: "Servo",
45-
Location: libraries.User,
46+
Location: rpc.LibraryLocation_user,
4647
Architectures: []string{"avr", "sam", "samd"}}
4748
userServoAllArch := &libraries.Library{
4849
Name: "Servo",
49-
Location: libraries.User,
50+
Location: rpc.LibraryLocation_user,
5051
Architectures: []string{"*"}}
5152
userServoNonavr := &libraries.Library{
5253
Name: "Servo",
53-
Location: libraries.User,
54+
Location: rpc.LibraryLocation_user,
5455
Architectures: []string{"sam", "samd"}}
5556
userAnotherServo := &libraries.Library{
5657
Name: "AnotherServo",
57-
Location: libraries.User,
58+
Location: rpc.LibraryLocation_user,
5859
Architectures: []string{"avr", "sam", "samd", "esp32"}}
5960

6061
res := runResolver("Servo.h", "avr", bundleServo, userServo)
@@ -79,11 +80,11 @@ func TestArchitecturePriority(t *testing.T) {
7980

8081
userSDAllArch := &libraries.Library{
8182
Name: "SD",
82-
Location: libraries.User,
83+
Location: rpc.LibraryLocation_user,
8384
Architectures: []string{"*"}}
8485
builtinSDesp := &libraries.Library{
8586
Name: "SD",
86-
Location: libraries.PlatformBuiltIn,
87+
Location: rpc.LibraryLocation_platform_builtin,
8788
Architectures: []string{"esp8266"}}
8889
res = runResolver("SD.h", "esp8266", userSDAllArch, builtinSDesp)
8990
require.Equal(t, builtinSDesp, res, "selected library")

‎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)
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 {
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)
5858
}
5959

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

‎rpc/commands/lib.pb.go

Lines changed: 98 additions & 97 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎rpc/commands/lib.proto

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@ message Library {
149149
string install_dir = 10;
150150
string source_dir = 11;
151151
string utility_dir = 12;
152-
string location = 13;
153152
string container_platform = 14;
154153
string layout = 15;
155154
string real_name = 16;
@@ -160,6 +159,7 @@ message Library {
160159
string version = 21;
161160
string license = 22;
162161
map<string, string> properties = 23;
162+
LibraryLocation location = 24;
163163
}
164164

165165
enum LibraryLayout {
@@ -169,7 +169,7 @@ enum LibraryLayout {
169169

170170
enum LibraryLocation {
171171
ide_builtin = 0;
172-
platform_builtin = 1;
173-
referenced_platform_builtin = 2;
174-
sketchbook = 3;
172+
user = 1; // (sketchbook)
173+
platform_builtin = 2;
174+
referenced_platform_builtin = 3;
175175
}

0 commit comments

Comments
 (0)
Please sign in to comment.