Skip to content

Commit 5128cc2

Browse files
committed
Refactored libraryResolveDependencies.
The function is now split into two functions: - librariesGetAllInstalled that requires a librariesmanager.Explorer. - libraryResolveDependencies that requires only a librariesindex.Index and do not require anymore a librariesmanager.Explorer.
1 parent 02e31a1 commit 5128cc2

File tree

3 files changed

+24
-20
lines changed

3 files changed

+24
-20
lines changed

commands/service_library_install.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,11 @@ func (s *arduinoCoreServerImpl) LibraryInstall(req *rpc.LibraryInstallRequest, s
8585
return err
8686
}
8787

88-
deps, err := libraryResolveDependencies(lme, li, req.GetName(), req.GetVersion(), req.GetNoOverwrite())
88+
var overrides []*librariesindex.Release
89+
if req.GetNoOverwrite() {
90+
overrides = librariesGetAllInstalled(lme, li)
91+
}
92+
deps, err := libraryResolveDependencies(li, req.GetName(), req.GetVersion(), overrides)
8993
releaseLme()
9094
if err != nil {
9195
return err

commands/service_library_resolve_deps.go

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,11 @@ func (s *arduinoCoreServerImpl) LibraryResolveDependencies(ctx context.Context,
4343
return nil, err
4444
}
4545

46-
deps, err := libraryResolveDependencies(lme, li, req.GetName(), req.GetVersion(), req.GetDoNotUpdateInstalledLibraries())
46+
var overrides []*librariesindex.Release
47+
if req.GetDoNotUpdateInstalledLibraries() {
48+
overrides = librariesGetAllInstalled(lme, li)
49+
}
50+
deps, err := libraryResolveDependencies(li, req.GetName(), req.GetVersion(), overrides)
4751
if err != nil {
4852
return nil, err
4953
}
@@ -78,8 +82,19 @@ func (s *arduinoCoreServerImpl) LibraryResolveDependencies(ctx context.Context,
7882
return &rpc.LibraryResolveDependenciesResponse{Dependencies: res}, nil
7983
}
8084

81-
func libraryResolveDependencies(lme *librariesmanager.Explorer, li *librariesindex.Index,
82-
reqName, reqVersion string, noOverwrite bool) ([]*librariesindex.Release, error) {
85+
func librariesGetAllInstalled(lme *librariesmanager.Explorer, li *librariesindex.Index) []*librariesindex.Release {
86+
var overrides []*librariesindex.Release
87+
libs := lme.FindAllInstalled()
88+
libs = libs.FilterByVersionAndInstallLocation(nil, libraries.User)
89+
for _, lib := range libs {
90+
if release, err := li.FindRelease(lib.Name, lib.Version); err == nil {
91+
overrides = append(overrides, release)
92+
}
93+
}
94+
return overrides
95+
}
96+
97+
func libraryResolveDependencies(li *librariesindex.Index, reqName, reqVersion string, overrides []*librariesindex.Release) ([]*librariesindex.Release, error) {
8398
version, err := parseVersion(reqVersion)
8499
if err != nil {
85100
return nil, err
@@ -92,16 +107,6 @@ func libraryResolveDependencies(lme *librariesmanager.Explorer, li *librariesind
92107
}
93108

94109
// Resolve all dependencies...
95-
var overrides []*librariesindex.Release
96-
if noOverwrite {
97-
libs := lme.FindAllInstalled()
98-
libs = libs.FilterByVersionAndInstallLocation(nil, libraries.User)
99-
for _, lib := range libs {
100-
if release, err := li.FindRelease(lib.Name, lib.Version); err == nil {
101-
overrides = append(overrides, release)
102-
}
103-
}
104-
}
105110
deps := li.ResolveDependencies(reqLibRelease, overrides)
106111

107112
// If no solution has been found

commands/service_profile_lib_add.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,8 @@ func (s *arduinoCoreServerImpl) ProfileLibAdd(ctx context.Context, req *rpc.Prof
112112
}
113113

114114
if req.GetAddDependencies() {
115-
lme, release, err := instances.GetLibraryManagerExplorer(req.GetInstance())
116-
if err != nil {
117-
return nil, err
118-
}
119-
libWithDeps, err := libraryResolveDependencies(lme, li, libRelease.GetName(), libRelease.GetVersion().String(), false)
115+
libWithDeps, err := libraryResolveDependencies(li, libRelease.GetName(), libRelease.GetVersion().String(), nil)
120116
// deps contains the main library as well, so we skip it when adding dependencies
121-
release()
122117
if err != nil {
123118
return nil, err
124119
}

0 commit comments

Comments
 (0)