@@ -57,25 +57,42 @@ func runOutdatedCommand(cmd *cobra.Command, args []string) {
57
57
feedback .Errorf (tr ("Error retrieving outdated cores and libraries: %v" ), err )
58
58
}
59
59
60
+ feedback .PrintResult (outdatedResult {
61
+ Platforms : outdatedResp .OutdatedPlatforms ,
62
+ Libraries : outdatedResp .OutdatedLibraries })
63
+ }
64
+
65
+ // output from this command requires special formatting, let's create a dedicated
66
+ // feedback.Result implementation
67
+ type outdatedResult struct {
68
+ Platforms []* rpc.Platform
69
+ Libraries []* rpc.InstalledLibrary
70
+ }
71
+
72
+ func (or outdatedResult ) Data () interface {} {
73
+ return or
74
+ }
75
+
76
+ func (or outdatedResult ) String () string {
60
77
// Prints outdated cores
61
- tab := table .New ()
62
- tab . SetHeader ( tr ( "ID" ), tr ( "Installed version" ), tr ( "New version" ), tr ( "Name" ))
63
- if len ( outdatedResp . OutdatedPlatforms ) > 0 {
64
- for _ , p := range outdatedResp . OutdatedPlatforms {
65
- tab .AddRow (p .Id , p .Installed , p .Latest , p .Name )
78
+ t1 := table .New ()
79
+ if len ( or . Platforms ) > 0 {
80
+ t1 . SetHeader ( tr ( "ID" ), tr ( "Installed version" ), tr ( "New version" ), tr ( "Name" ))
81
+ for _ , p := range or . Platforms {
82
+ t1 .AddRow (p .Id , p .Installed , p .Latest , p .Name )
66
83
}
67
- feedback .Print (tab .Render ())
68
84
}
69
85
70
86
// Prints outdated libraries
71
- tab = table .New ()
72
- tab . SetHeader ( tr ( "Library name" ), tr ( "Installed version" ), tr ( "New version" ))
73
- if len ( outdatedResp . OutdatedLibraries ) > 0 {
74
- for _ , l := range outdatedResp . OutdatedLibraries {
75
- tab .AddRow (l .Library .Name , l .Library .Version , l .Release .Version )
87
+ t2 : = table .New ()
88
+ if len ( or . Libraries ) > 0 {
89
+ t2 . SetHeader ( tr ( "Library name" ), tr ( "Installed version" ), tr ( "New version" ))
90
+ for _ , l := range or . Libraries {
91
+ t2 .AddRow (l .Library .Name , l .Library .Version , l .Release .Version )
76
92
}
77
- feedback .Print (tab .Render ())
78
93
}
79
-
80
- logrus .Info ("Done" )
94
+ if len (or .Libraries ) > 0 && len (or .Platforms ) > 0 {
95
+ return t1 .Render () + "\n " + t2 .Render () // handle the new line between tables
96
+ }
97
+ return t1 .Render () + t2 .Render ()
81
98
}
0 commit comments