use proper name of the hub item instead of the filename for local items

This commit is contained in:
Sebastien Blot 2023-11-20 11:35:32 +01:00
parent 56ad2bbf98
commit c01c5677d1
No known key found for this signature in database
GPG key ID: DFC2902F40449F6A

View file

@ -10,11 +10,17 @@ import (
"sort"
"strings"
"slices"
"github.com/Masterminds/semver/v3"
log "github.com/sirupsen/logrus"
"slices"
"gopkg.in/yaml.v3"
)
type localItem struct {
Name string `yaml:"name"`
}
func isYAMLFileName(path string) bool {
return strings.HasSuffix(path, ".yaml") || strings.HasSuffix(path, ".yml")
}
@ -208,9 +214,22 @@ func (h *Hub) itemVisit(path string, f os.DirEntry, err error) error {
_, fileName := filepath.Split(path)
item := localItem{}
itemContent, err := os.ReadFile(path)
if err != nil {
return fmt.Errorf("failed to read %s: %w", path, err)
}
err = yaml.Unmarshal(itemContent, &item)
if err != nil {
return fmt.Errorf("failed to unmarshal %s: %w", path, err)
}
h.Items[info.ftype][info.fname] = &Item{
hub: h,
Name: info.fname,
Name: item.Name,
Stage: info.stage,
Installed: true,
Type: info.ftype,