From 49795ad9fdaebd1e62615ee10bba4c02d2d3f5f3 Mon Sep 17 00:00:00 2001 From: jackgr Date: Fri, 18 Mar 2016 14:54:26 -0700 Subject: [PATCH] Add chart content loading --- pkg/chart/chart.go | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/pkg/chart/chart.go b/pkg/chart/chart.go index 8857bf441..8aee85db6 100644 --- a/pkg/chart/chart.go +++ b/pkg/chart/chart.go @@ -377,12 +377,21 @@ func (c *Chart) loadDirectory(dir string) ([]*ChartMember, error) { members := []*ChartMember{} for _, file := range files { filename := filepath.Join(dir, file.Name()) - member, err := c.loadMember(filename) - if err != nil { - return nil, err - } + if !file.IsDir() { + addition, err := c.loadMember(filename) + if err != nil { + return nil, err + } + + members = append(members, addition) + } else { + additions, err := c.loadDirectory(filename) + if err != nil { + return nil, err + } - members = append(members, member) + members = append(members, additions...) + } } return members, nil @@ -416,3 +425,22 @@ func (c *Chart) loadMember(filename string) (*ChartMember, error) { return result, nil } + +type ChartContent struct { + Chartfile *Chartfile `json:"chartfile"` + Members []*ChartMember `json:"templates"` +} + +func (c *Chart) LoadContent() (*ChartContent, error) { + ms, err := c.loadDirectory(c.Dir()) + if err != nil { + return nil, err + } + + cc := &ChartContent{ + Chartfile: c.Chartfile(), + Members: ms, + } + + return cc, nil +}