Skip to content

Commit 2f4b781

Browse files
authored
Merge pull request #5 from mbaraa/ebuild_template
Ebuild template
2 parents 159c108 + cc76368 commit 2f4b781

File tree

4 files changed

+49
-25
lines changed

4 files changed

+49
-25
lines changed

actions/download_repos_cache.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,11 @@ func (d *DownloadReposCacheAction) convertModelsAndPersist() error {
9494
for version, ebuildsWithVersions := range versions {
9595
if len(ebuild.Name) == 0 {
9696
ebuild = models.Ebuild{
97-
Name: versions[version].Name,
98-
GroupName: versions[version].GroupName,
99-
Homepage: versions[version].Homepage,
100-
ExtraData: extraData,
97+
Name: versions[version].Name,
98+
GroupName: versions[version].GroupName,
99+
Homepage: versions[version].Homepage,
100+
Description: versions[version].Description,
101+
ExtraData: extraData,
101102
}
102103
}
103104
extraData = append(extraData, models.ExtraData{

cli/templates/ebuild.go

+37-16
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package templates
22

33
import (
4+
"fmt"
45
"strings"
56

67
"github.com/mbaraa/eloi/cli/cfmt"
@@ -21,33 +22,53 @@ func EbuildTemplate(ebuild models.Ebuild) string {
2122

2223
_, _ = cfmt.Green().Fprint(sb, ebuild.GroupName)
2324
_, _ = cfmt.White().Fprint(sb, "/")
24-
_, _ = cfmt.White().Bold().Fprintln(sb, ebuild.Name)
25+
_, _ = cfmt.White().Fprintln(sb, ebuild.Name)
2526

2627
if len(ebuild.Homepage) != 0 {
2728
_, _ = cfmt.Green().Bold().Fprintf(sb, "\tHomepage: ")
2829
_, _ = cfmt.White().Fprintln(sb, ebuild.Homepage)
2930
}
3031

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, "\tDescription: ")
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, ", ")
4446
}
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
4555
}
4656

4757
_, _ = cfmt.Green().Bold().Fprintf(sb, "\tAvailable Overlays: ")
48-
_, _ = cfmt.Yellow().Fprintln(sb, overlays.String())
58+
_, _ = cfmt.Yellow().Fprintln(sb, removeTrailingCommaSpace(overlaysStr.String()))
59+
4960
_, _ = cfmt.Green().Bold().Fprintf(sb, "\tAvailable Versions: ")
50-
_, _ = cfmt.Yellow().Fprintln(sb, versions.String())
61+
_, _ = cfmt.Yellow().Fprintln(sb, removeTrailingCommaSpace(versionsStr.String()))
5162

5263
return sb.String()
5364
}
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+
}

models/models.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,12 @@ type ExtraData struct {
3030
}
3131

3232
type Ebuild struct {
33-
gorm.Model `json:"-"`
34-
Id uint `gorm:"primaryKey;autoIncrement"`
35-
Name string
36-
GroupName string
37-
Homepage string
33+
gorm.Model `json:"-"`
34+
Id uint `gorm:"primaryKey;autoIncrement"`
35+
Name string
36+
GroupName string
37+
Homepage string
38+
Description string `json:"description"`
3839

3940
ExtraData []ExtraData // version => providers overlays
4041
}

models/server_models.go

+1
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,5 @@ type ServerEbuild struct {
3535
OverlayName string `json:"overlayName"`
3636
GroupName string `json:"groupName"`
3737
Architecture string `json:"architecture"`
38+
Description string `json:"description"`
3839
}

0 commit comments

Comments
 (0)