1
1
package templates
2
2
3
3
import (
4
+ "fmt"
4
5
"strings"
5
6
6
7
"github.com/mbaraa/eloi/cli/cfmt"
@@ -21,33 +22,53 @@ func EbuildTemplate(ebuild models.Ebuild) string {
21
22
22
23
_ , _ = cfmt .Green ().Fprint (sb , ebuild .GroupName )
23
24
_ , _ = cfmt .White ().Fprint (sb , "/" )
24
- _ , _ = cfmt .White ().Bold (). Fprintln (sb , ebuild .Name )
25
+ _ , _ = cfmt .White ().Fprintln (sb , ebuild .Name )
25
26
26
27
if len (ebuild .Homepage ) != 0 {
27
28
_ , _ = cfmt .Green ().Bold ().Fprintf (sb , "\t Homepage: " )
28
29
_ , _ = cfmt .White ().Fprintln (sb , ebuild .Homepage )
29
30
}
30
31
31
- // if len(ebuild.Description) != 0 {
32
- // _, _ = cfmt.Green().Bold().Fprintf(sb, "\tDescription: ")
33
- // _, _ = cfmt.White().Fprintln(sb, ebuild.Description)
34
- // }
35
-
36
- versions := new (strings.Builder )
37
- overlays := new (strings.Builder )
38
- for i , extraData := range ebuild .ExtraData {
39
- _ , _ = cfmt .Yellow ().Fprint (versions , extraData .Version )
40
- _ , _ = cfmt .Yellow ().Fprint (overlays , extraData .OverlayName )
41
- if i < len (ebuild .ExtraData )- 1 {
42
- _ , _ = cfmt .Yellow ().Fprint (versions , ", " )
43
- _ , _ = cfmt .Yellow ().Fprint (overlays , ", " )
32
+ if len (ebuild .Description ) != 0 {
33
+ _ , _ = cfmt .Green ().Bold ().Fprintf (sb , "\t Description: " )
34
+ _ , _ = cfmt .White ().Fprintln (sb , ebuild .Description )
35
+ }
36
+
37
+ versions := make (map [string ]bool )
38
+ overlays := make (map [string ]bool )
39
+ versionsStr := new (strings.Builder )
40
+ overlaysStr := new (strings.Builder )
41
+
42
+ for _ , extraData := range ebuild .ExtraData {
43
+ if ! versions [extraData .Version ] {
44
+ _ , _ = fmt .Fprint (versionsStr , extraData .Version )
45
+ _ , _ = fmt .Fprint (versionsStr , ", " )
44
46
}
47
+
48
+ if ! overlays [extraData .OverlayName ] {
49
+ _ , _ = fmt .Fprint (overlaysStr , extraData .OverlayName )
50
+ _ , _ = fmt .Fprint (overlaysStr , ", " )
51
+ }
52
+
53
+ versions [extraData .Version ] = true
54
+ overlays [extraData .OverlayName ] = true
45
55
}
46
56
47
57
_ , _ = cfmt .Green ().Bold ().Fprintf (sb , "\t Available Overlays: " )
48
- _ , _ = cfmt .Yellow ().Fprintln (sb , overlays .String ())
58
+ _ , _ = cfmt .Yellow ().Fprintln (sb , removeTrailingCommaSpace (overlaysStr .String ()))
59
+
49
60
_ , _ = cfmt .Green ().Bold ().Fprintf (sb , "\t Available Versions: " )
50
- _ , _ = cfmt .Yellow ().Fprintln (sb , versions .String ())
61
+ _ , _ = cfmt .Yellow ().Fprintln (sb , removeTrailingCommaSpace ( versionsStr .String () ))
51
62
52
63
return sb .String ()
53
64
}
65
+
66
+ func removeTrailingCommaSpace (s string ) string {
67
+ if len (s ) < 2 {
68
+ return ""
69
+ }
70
+ if s [len (s )- 2 :] == ", " {
71
+ return s [:len (s )- 2 ]
72
+ }
73
+ return s
74
+ }
0 commit comments