diff options
author | noqcks <benny@noqcks.io> | 2018-05-03T17·50-0400 |
---|---|---|
committer | Vincent Ambo <github@tazj.in> | 2018-05-05T08·29+0200 |
commit | 3ea3bed7acda9b365c45d268342fb52e236f95ed (patch) | |
tree | 9c45f33ca39a429fc893d2292bc0d9372f483174 | |
parent | ac445d5235a5a5d543d4926290e7eaef6a3b40dd (diff) |
fix(templater): add baseDir to gitHead cmd so that directory is overwritten
This makes it so that when gitHead is called in a template the git hash that is returned is the hash of the folder containing the template, not the hash of the folder where kontemplate is called.
-rw-r--r-- | templater/templater.go | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/templater/templater.go b/templater/templater.go index 3c8d2ccdbdfa..c0eff234f5b7 100644 --- a/templater/templater.go +++ b/templater/templater.go @@ -103,7 +103,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(rs)).Option(failOnMissingKeys).ParseFiles(filename) + tpl, err := template.New(path.Base(filename)).Funcs(templateFuncs(c, rs)).Option(failOnMissingKeys).ParseFiles(filename) if err != nil { return "", fmt.Errorf("Template %s not found: %v", filename, err) @@ -163,7 +163,7 @@ func matchesResourceSet(s *[]string, rs *context.ResourceSet) bool { return false } -func templateFuncs(rs *context.ResourceSet) template.FuncMap { +func templateFuncs(c *context.Context, rs *context.ResourceSet) template.FuncMap { m := sprig.TxtFuncMap() m["json"] = func(data interface{}) string { b, _ := json.Marshal(data) @@ -171,13 +171,13 @@ func templateFuncs(rs *context.ResourceSet) template.FuncMap { } m["passLookup"] = GetFromPass m["gitHEAD"] = func() (string, error) { - out, err := exec.Command("git", "rev-parse", "HEAD").Output() - if err != nil { - return "", err - } - output := strings.TrimSpace(string(out)) - return output, nil + out, err := exec.Command("git", "-C", c.BaseDir, "rev-parse", "HEAD").Output() + if err != nil { + return "", err } + output := strings.TrimSpace(string(out)) + return output, nil + } m["lookupIPAddr"] = GetIPsFromDNS m["insertFile"] = func(file string) (string, error) { data, err := ioutil.ReadFile(path.Join(rs.Path, file)) |