diff options
| author | Dave Henderson <dhenderson@gmail.com> | 2018-11-12 23:22:06 -0500 |
|---|---|---|
| committer | Dave Henderson <dhenderson@gmail.com> | 2018-11-15 13:40:17 -0500 |
| commit | 6056ca97d889fb268cc287334bc644e6b6d487d7 (patch) | |
| tree | 70c877188224219bb94d6b1c98894e53daf02497 /gomplate.go | |
| parent | 79b79c1db7652ba763f0186360e92da7f4b30fbd (diff) | |
New --context flag for adding datasources to context
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'gomplate.go')
| -rw-r--r-- | gomplate.go | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/gomplate.go b/gomplate.go index 85bc8be6..da0ba097 100644 --- a/gomplate.go +++ b/gomplate.go @@ -26,6 +26,7 @@ type Config struct { DataSources []string DataSourceHeaders []string + Contexts []string LDelim string RDelim string @@ -76,6 +77,9 @@ func (o *Config) String() string { if len(o.DataSourceHeaders) > 0 { c += "\ndatasourceheaders: " + strings.Join(o.DataSourceHeaders, ", ") } + if len(o.Contexts) > 0 { + c += "\ncontexts: " + strings.Join(o.Contexts, ", ") + } if o.LDelim != "{{" { c += "\nleft_delim: " + o.LDelim @@ -97,11 +101,11 @@ type gomplate struct { rightDelim string nestedTemplates templateAliases rootTemplate *template.Template + context interface{} } // runTemplate - func (g *gomplate) runTemplate(t *tplate) error { - context := &context{} tmpl, err := t.toGoTemplate(g) if err != nil { return err @@ -114,19 +118,20 @@ func (g *gomplate) runTemplate(t *tplate) error { defer t.target.(io.Closer).Close() } } - err = tmpl.Execute(t.target, context) + err = tmpl.Execute(t.target, g.context) return err } type templateAliases map[string]string // newGomplate - -func newGomplate(d *data.Data, leftDelim, rightDelim string, nested templateAliases) *gomplate { +func newGomplate(d *data.Data, leftDelim, rightDelim string, nested templateAliases, context interface{}) *gomplate { return &gomplate{ leftDelim: leftDelim, rightDelim: rightDelim, funcMap: Funcs(d), nestedTemplates: nested, + context: context, } } @@ -181,7 +186,8 @@ func parseTemplateArg(templateArg string, ta templateAliases) error { func RunTemplates(o *Config) error { Metrics = newMetrics() defer runCleanupHooks() - d, err := data.NewData(o.DataSources, o.DataSourceHeaders) + ds := append(o.DataSources, o.Contexts...) + d, err := data.NewData(ds, o.DataSourceHeaders) if err != nil { return err } @@ -190,7 +196,11 @@ func RunTemplates(o *Config) error { if err != nil { return err } - g := newGomplate(d, o.LDelim, o.RDelim, nested) + c, err := createContext(o.Contexts, d) + if err != nil { + return err + } + g := newGomplate(d, o.LDelim, o.RDelim, nested, c) return g.runTemplates(o) } |
