Skip to content

Commit 1534ab9

Browse files
cli: lib deps use feedback result structs
1 parent 60abc6a commit 1534ab9

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

internal/cli/lib/check_deps.go

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/arduino/arduino-cli/commands/lib"
2525
"github.com/arduino/arduino-cli/internal/cli/arguments"
2626
"github.com/arduino/arduino-cli/internal/cli/feedback"
27+
fResult "github.com/arduino/arduino-cli/internal/cli/feedback/result"
2728
"github.com/arduino/arduino-cli/internal/cli/instance"
2829
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2930
"github.com/fatih/color"
@@ -65,20 +66,23 @@ func runDepsCommand(cmd *cobra.Command, args []string) {
6566
feedback.Fatal(tr("Error resolving dependencies for %[1]s: %[2]s", libRef, err), feedback.ErrGeneric)
6667
}
6768

68-
feedback.PrintResult(&checkDepResult{deps: deps})
69+
feedback.PrintResult(&checkDepResult{deps: fResult.NewLibraryResolveDependenciesResponse(deps)})
6970
}
7071

7172
// output from this command requires special formatting, let's create a dedicated
7273
// feedback.Result implementation
7374
type checkDepResult struct {
74-
deps *rpc.LibraryResolveDependenciesResponse
75+
deps *fResult.LibraryResolveDependenciesResponse
7576
}
7677

7778
func (dr checkDepResult) Data() interface{} {
7879
return dr.deps
7980
}
8081

8182
func (dr checkDepResult) String() string {
83+
if dr.deps == nil || dr.deps.Dependencies == nil {
84+
return ""
85+
}
8286
res := ""
8387
deps := dr.deps.Dependencies
8488

@@ -91,26 +95,29 @@ func (dr checkDepResult) String() string {
9195
})
9296

9397
for _, dep := range deps {
98+
if dep == nil {
99+
continue
100+
}
94101
res += outputDep(dep)
95102
}
96103
return res
97104
}
98105

99-
func outputDep(dep *rpc.LibraryDependencyStatus) string {
106+
func outputDep(dep *fResult.LibraryDependencyStatus) string {
100107
res := ""
101108
green := color.New(color.FgGreen)
102109
red := color.New(color.FgRed)
103110
yellow := color.New(color.FgYellow)
104-
if dep.GetVersionInstalled() == "" {
111+
if dep.VersionInstalled == "" {
105112
res += tr("%s must be installed.",
106-
red.Sprintf("✕ %s %s", dep.GetName(), dep.GetVersionRequired()))
107-
} else if dep.GetVersionInstalled() == dep.GetVersionRequired() {
113+
red.Sprintf("✕ %s %s", dep.Name, dep.VersionRequired))
114+
} else if dep.VersionInstalled == dep.VersionRequired {
108115
res += tr("%s is already installed.",
109-
green.Sprintf("✓ %s %s", dep.GetName(), dep.GetVersionRequired()))
116+
green.Sprintf("✓ %s %s", dep.Name, dep.VersionRequired))
110117
} else {
111118
res += tr("%[1]s is required but %[2]s is currently installed.",
112-
yellow.Sprintf("✕ %s %s", dep.GetName(), dep.GetVersionRequired()),
113-
yellow.Sprintf("%s", dep.GetVersionInstalled()))
119+
yellow.Sprintf("✕ %s %s", dep.Name, dep.VersionRequired),
120+
yellow.Sprintf("%s", dep.VersionInstalled))
114121
}
115122
res += "\n"
116123
return res

0 commit comments

Comments
 (0)