refactor(templater): Pass resource set path to insertFile function

This is actually several refactors in one:

* rename "fileContent" function to "insertFile"
* pass the resource set path to the "insetFile" function
* update docs and example with a pipeline including indentation
  adjustments for the inserted file
This commit is contained in:
Vincent Ambo 2018-03-09 14:49:33 +01:00 committed by Vincent Ambo
parent bafb792339
commit b8722ce83b
4 changed files with 26 additions and 33 deletions

View file

@ -119,7 +119,7 @@ func processFiles(c *context.Context, rs *context.ResourceSet, rp string, files
}
func templateFile(c *context.Context, rs *context.ResourceSet, filename string) (string, error) {
tpl, err := template.New(path.Base(filename)).Funcs(templateFuncs()).Option(failOnMissingKeys).ParseFiles(filename)
tpl, err := template.New(path.Base(filename)).Funcs(templateFuncs(rs)).Option(failOnMissingKeys).ParseFiles(filename)
if err != nil {
return "", meep.New(
@ -185,7 +185,7 @@ func matchesResourceSet(s *[]string, rs *context.ResourceSet) bool {
return false
}
func templateFuncs() template.FuncMap {
func templateFuncs(rs *context.ResourceSet) template.FuncMap {
m := sprig.TxtFuncMap()
m["json"] = func(data interface{}) string {
b, _ := json.Marshal(data)
@ -193,7 +193,14 @@ func templateFuncs() template.FuncMap {
}
m["passLookup"] = GetFromPass
m["lookupIPAddr"] = GetIPsFromDNS
m["fileContent"] = GetFromFile
m["insertFile"] = func(file string) (string, error) {
data, err := ioutil.ReadFile(path.Join(rs.Path, file))
if err != nil {
return "", err
}
return string(data), nil
}
return m
}