forked from TrueCloudLab/certificates
Use different options to load a template from a string or file.
This commit is contained in:
parent
738304bc6f
commit
70c0af8200
1 changed files with 17 additions and 1 deletions
|
@ -25,7 +25,23 @@ func (o *Options) apply(opts []Option) (*Options, error) {
|
||||||
|
|
||||||
type Option func(o *Options) error
|
type Option func(o *Options) error
|
||||||
|
|
||||||
func WithTemplate(path string, data map[string]interface{}) Option {
|
func WithTemplate(text string, data map[string]interface{}) Option {
|
||||||
|
return func(o *Options) error {
|
||||||
|
tmpl, err := template.New("template").Funcs(sprig.TxtFuncMap()).Parse(text)
|
||||||
|
if err != nil {
|
||||||
|
return errors.Wrapf(err, "error parsing template")
|
||||||
|
}
|
||||||
|
|
||||||
|
buf := new(bytes.Buffer)
|
||||||
|
if err := tmpl.Execute(buf, data); err != nil {
|
||||||
|
return errors.Wrapf(err, "error executing template")
|
||||||
|
}
|
||||||
|
o.CertBuffer = buf
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func WithTemplateFile(path string, data map[string]interface{}) Option {
|
||||||
return func(o *Options) error {
|
return func(o *Options) error {
|
||||||
filename := config.StepAbs(path)
|
filename := config.StepAbs(path)
|
||||||
b, err := ioutil.ReadFile(filename)
|
b, err := ioutil.ReadFile(filename)
|
||||||
|
|
Loading…
Reference in a new issue