feat: parse templates in collection-type variables (#1526)

* refactor: replacer

* feat: move traverser to deepcopy package

* feat: nested map variable templating

* refactor: ReplaceVar function

* feat: test cases

* fix: TraverseStringsFunc copy value instead of pointer
This commit is contained in:
Pete Davison
2024-03-10 17:11:07 +00:00
committed by GitHub
parent 19a4d8f928
commit 08a888dc8a
13 changed files with 243 additions and 135 deletions

View File

@@ -60,11 +60,11 @@ func Read(
}
err = tf.Includes.Range(func(namespace string, include ast.Include) error {
tr := templater.Templater{Vars: tf.Vars}
cache := &templater.Cache{Vars: tf.Vars}
include = ast.Include{
Namespace: include.Namespace,
Taskfile: tr.Replace(include.Taskfile),
Dir: tr.Replace(include.Dir),
Taskfile: templater.Replace(include.Taskfile, cache),
Dir: templater.Replace(include.Dir, cache),
Optional: include.Optional,
Internal: include.Internal,
Aliases: include.Aliases,
@@ -72,7 +72,7 @@ func Read(
Vars: include.Vars,
BaseDir: include.BaseDir,
}
if err := tr.Err(); err != nil {
if err := cache.Err(); err != nil {
return err
}