Skip to content

Commit

Permalink
Support passing left and right delims
Browse files Browse the repository at this point in the history
  • Loading branch information
Oleg Sucharevich committed Aug 21, 2019
1 parent 0957135 commit 4c1795a
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 5 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.5.0
0.6.0
11 changes: 11 additions & 0 deletions cmd/render.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"fmt"
"io"
"os"
"path"

"strings"

Expand All @@ -16,6 +17,8 @@ var renderCmdOptions struct {
templates []string
values []string
rootContext string
rightDelim string
leftDelim string
}

var renderCmd = &cobra.Command{
Expand All @@ -24,6 +27,9 @@ var renderCmd = &cobra.Command{
templateReaders := make(map[string]io.Reader)
valueReaders := make(map[string]io.Reader)
log := logger.New(nil)
if len(renderCmdOptions.templates) == 0 {
dieOnError(fmt.Errorf("No tempalte given"), log)
}
for _, templatePath := range renderCmdOptions.templates {
file, err := os.Open(templatePath)
dieOnError(err, log)
Expand Down Expand Up @@ -63,6 +69,9 @@ var renderCmd = &cobra.Command{
engine := renderer.New(&renderer.Options{
TemplateReaders: templateReaders,
ValueReaders: valueReaders,
LeftDelim: renderCmdOptions.leftDelim,
RightDelim: renderCmdOptions.rightDelim,
Name: path.Base(renderCmdOptions.templates[0]),
})
res, err := engine.Render()
dieOnError(err, log)
Expand All @@ -75,4 +84,6 @@ func init() {
renderCmd.Flags().StringArrayVar(&renderCmdOptions.templates, "template", []string{}, "Path to template file")
renderCmd.Flags().StringArrayVar(&renderCmdOptions.values, "value", []string{}, "Path to value file")
renderCmd.Flags().StringVar(&renderCmdOptions.rootContext, "root-namespace", "Values", "Name of the root namespace (default: Values)")
renderCmd.Flags().StringVar(&renderCmdOptions.leftDelim, "left-delim", "<<", "Left delimiter (default: <<)")
renderCmd.Flags().StringVar(&renderCmdOptions.rightDelim, "right-delim", ">>", "Right delimiter (default: >>)")
}
19 changes: 15 additions & 4 deletions pkg/renderer/renderer.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,29 @@ type (
TemplateReaders map[string]io.Reader
ValueReaders map[string]io.Reader
RootNamespace string
LeftDelim string
RightDelim string
Name string
}

Values map[string]interface{}

renderer struct {
templateReaders map[string]io.Reader
valueReaders map[string]io.Reader
leftDelim string
rightDelim string
name string
}
)

func New(opt *Options) Renderer {
return &renderer{
templateReaders: opt.TemplateReaders,
valueReaders: opt.ValueReaders,
leftDelim: opt.LeftDelim,
rightDelim: opt.RightDelim,
name: opt.Name,
}
}

Expand All @@ -50,6 +59,7 @@ func (r *renderer) Render() (*bytes.Buffer, error) {
}
content = append(content, string(res))
}

for name, reader := range r.valueReaders {
vals := Values{}
res, err := ioutil.ReadAll(reader)
Expand All @@ -65,10 +75,11 @@ func (r *renderer) Render() (*bytes.Buffer, error) {

}

tmpl := template.New("")
tmpl.Funcs(gomplate.Funcs(nil))
tmpl.Parse(strings.Join(content, "\n"))
err := tmpl.Execute(out, root)
tmpl, err := template.New(r.name).Funcs(gomplate.Funcs(nil)).Delims(r.leftDelim, r.rightDelim).Parse(strings.Join(content, "\n"))
if err != nil {
return nil, err
}
err = tmpl.Execute(out, root)
if err != nil {
return nil, err
}
Expand Down

0 comments on commit 4c1795a

Please sign in to comment.