Skip to content

Commit

Permalink
Merge pull request #5 from mbaraa/ebuild_template
Browse files Browse the repository at this point in the history
Ebuild template
  • Loading branch information
mbaraa authored Mar 6, 2023
2 parents 159c108 + cc76368 commit 2f4b781
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 25 deletions.
9 changes: 5 additions & 4 deletions actions/download_repos_cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,11 @@ func (d *DownloadReposCacheAction) convertModelsAndPersist() error {
for version, ebuildsWithVersions := range versions {
if len(ebuild.Name) == 0 {
ebuild = models.Ebuild{
Name: versions[version].Name,
GroupName: versions[version].GroupName,
Homepage: versions[version].Homepage,
ExtraData: extraData,
Name: versions[version].Name,
GroupName: versions[version].GroupName,
Homepage: versions[version].Homepage,
Description: versions[version].Description,
ExtraData: extraData,
}
}
extraData = append(extraData, models.ExtraData{
Expand Down
53 changes: 37 additions & 16 deletions cli/templates/ebuild.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package templates

import (
"fmt"
"strings"

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

_, _ = cfmt.Green().Fprint(sb, ebuild.GroupName)
_, _ = cfmt.White().Fprint(sb, "/")
_, _ = cfmt.White().Bold().Fprintln(sb, ebuild.Name)
_, _ = cfmt.White().Fprintln(sb, ebuild.Name)

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

// if len(ebuild.Description) != 0 {
// _, _ = cfmt.Green().Bold().Fprintf(sb, "\tDescription: ")
// _, _ = cfmt.White().Fprintln(sb, ebuild.Description)
// }

versions := new(strings.Builder)
overlays := new(strings.Builder)
for i, extraData := range ebuild.ExtraData {
_, _ = cfmt.Yellow().Fprint(versions, extraData.Version)
_, _ = cfmt.Yellow().Fprint(overlays, extraData.OverlayName)
if i < len(ebuild.ExtraData)-1 {
_, _ = cfmt.Yellow().Fprint(versions, ", ")
_, _ = cfmt.Yellow().Fprint(overlays, ", ")
if len(ebuild.Description) != 0 {
_, _ = cfmt.Green().Bold().Fprintf(sb, "\tDescription: ")
_, _ = cfmt.White().Fprintln(sb, ebuild.Description)
}

versions := make(map[string]bool)
overlays := make(map[string]bool)
versionsStr := new(strings.Builder)
overlaysStr := new(strings.Builder)

for _, extraData := range ebuild.ExtraData {
if !versions[extraData.Version] {
_, _ = fmt.Fprint(versionsStr, extraData.Version)
_, _ = fmt.Fprint(versionsStr, ", ")
}

if !overlays[extraData.OverlayName] {
_, _ = fmt.Fprint(overlaysStr, extraData.OverlayName)
_, _ = fmt.Fprint(overlaysStr, ", ")
}

versions[extraData.Version] = true
overlays[extraData.OverlayName] = true
}

_, _ = cfmt.Green().Bold().Fprintf(sb, "\tAvailable Overlays: ")
_, _ = cfmt.Yellow().Fprintln(sb, overlays.String())
_, _ = cfmt.Yellow().Fprintln(sb, removeTrailingCommaSpace(overlaysStr.String()))

_, _ = cfmt.Green().Bold().Fprintf(sb, "\tAvailable Versions: ")
_, _ = cfmt.Yellow().Fprintln(sb, versions.String())
_, _ = cfmt.Yellow().Fprintln(sb, removeTrailingCommaSpace(versionsStr.String()))

return sb.String()
}

func removeTrailingCommaSpace(s string) string {
if len(s) < 2 {
return ""
}
if s[len(s)-2:] == ", " {
return s[:len(s)-2]
}
return s
}
11 changes: 6 additions & 5 deletions models/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,12 @@ type ExtraData struct {
}

type Ebuild struct {
gorm.Model `json:"-"`
Id uint `gorm:"primaryKey;autoIncrement"`
Name string
GroupName string
Homepage string
gorm.Model `json:"-"`
Id uint `gorm:"primaryKey;autoIncrement"`
Name string
GroupName string
Homepage string
Description string `json:"description"`

ExtraData []ExtraData // version => providers overlays
}
Expand Down
1 change: 1 addition & 0 deletions models/server_models.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,5 @@ type ServerEbuild struct {
OverlayName string `json:"overlayName"`
GroupName string `json:"groupName"`
Architecture string `json:"architecture"`
Description string `json:"description"`
}

0 comments on commit 2f4b781

Please sign in to comment.