@@ -43,11 +43,40 @@ func (s *arduinoCoreServerImpl) LibraryResolveDependencies(ctx context.Context,
43
43
return nil , err
44
44
}
45
45
46
- return libraryResolveDependencies (lme , li , req .GetName (), req .GetVersion (), req .GetDoNotUpdateInstalledLibraries ())
46
+ deps , err := libraryResolveDependencies (lme , li , req .GetName (), req .GetVersion (), req .GetDoNotUpdateInstalledLibraries ())
47
+
48
+ // Extract all installed libraries
49
+ installedLibs := map [string ]* libraries.Library {}
50
+ for _ , lib := range listLibraries (lme , li , false , false ) {
51
+ installedLibs [lib .Library .Name ] = lib .Library
52
+ }
53
+
54
+ res := []* rpc.LibraryDependencyStatus {}
55
+ for _ , dep := range deps {
56
+ // ...and add information on currently installed versions of the libraries
57
+ var installed * semver.Version
58
+ required := dep .GetVersion ()
59
+ if installedLib , has := installedLibs [dep .GetName ()]; has {
60
+ installed = installedLib .Version
61
+ if installed != nil && required != nil && installed .Equal (required ) {
62
+ // avoid situations like installed=0.53 and required=0.53.0
63
+ required = installed
64
+ }
65
+ }
66
+ res = append (res , & rpc.LibraryDependencyStatus {
67
+ Name : dep .GetName (),
68
+ VersionRequired : required .String (),
69
+ VersionInstalled : installed .String (),
70
+ })
71
+ }
72
+ sort .Slice (res , func (i , j int ) bool {
73
+ return res [i ].GetName () < res [j ].GetName ()
74
+ })
75
+ return & rpc.LibraryResolveDependenciesResponse {Dependencies : res }, nil
47
76
}
48
77
49
78
func libraryResolveDependencies (lme * librariesmanager.Explorer , li * librariesindex.Index ,
50
- reqName , reqVersion string , noOverwrite bool ) (* rpc. LibraryResolveDependenciesResponse , error ) {
79
+ reqName , reqVersion string , noOverwrite bool ) ([] * librariesindex. Release , error ) {
51
80
version , err := parseVersion (reqVersion )
52
81
if err != nil {
53
82
return nil , err
@@ -59,12 +88,6 @@ func libraryResolveDependencies(lme *librariesmanager.Explorer, li *librariesind
59
88
return nil , err
60
89
}
61
90
62
- // Extract all installed libraries
63
- installedLibs := map [string ]* libraries.Library {}
64
- for _ , lib := range listLibraries (lme , li , false , false ) {
65
- installedLibs [lib .Library .Name ] = lib .Library
66
- }
67
-
68
91
// Resolve all dependencies...
69
92
var overrides []* librariesindex.Release
70
93
if noOverwrite {
@@ -92,26 +115,5 @@ func libraryResolveDependencies(lme *librariesmanager.Explorer, li *librariesind
92
115
return nil , & cmderrors.LibraryDependenciesResolutionFailedError {}
93
116
}
94
117
95
- res := []* rpc.LibraryDependencyStatus {}
96
- for _ , dep := range deps {
97
- // ...and add information on currently installed versions of the libraries
98
- var installed * semver.Version
99
- required := dep .GetVersion ()
100
- if installedLib , has := installedLibs [dep .GetName ()]; has {
101
- installed = installedLib .Version
102
- if installed != nil && required != nil && installed .Equal (required ) {
103
- // avoid situations like installed=0.53 and required=0.53.0
104
- required = installed
105
- }
106
- }
107
- res = append (res , & rpc.LibraryDependencyStatus {
108
- Name : dep .GetName (),
109
- VersionRequired : required .String (),
110
- VersionInstalled : installed .String (),
111
- })
112
- }
113
- sort .Slice (res , func (i , j int ) bool {
114
- return res [i ].GetName () < res [j ].GetName ()
115
- })
116
- return & rpc.LibraryResolveDependenciesResponse {Dependencies : res }, nil
118
+ return deps , nil
117
119
}
0 commit comments