1
0
mirror of https://github.com/go-task/task.git synced 2025-06-15 00:15:10 +02:00

Allow customizable number of expansions

Updates #66
This commit is contained in:
Andrey Nering
2018-03-04 15:50:03 -03:00
parent 1a3df08aca
commit 51998f706f
3 changed files with 22 additions and 15 deletions

View File

@ -16,10 +16,13 @@ import (
var _ compiler.Compiler = &CompilerV2{}
type CompilerV2 struct {
Dir string
Dir string
Taskvars taskfile.Vars
TaskfileVars taskfile.Vars
Expansions int
Logger *logger.Logger
dynamicCache map[string]string
@ -34,14 +37,11 @@ type CompilerV2 struct {
// 5. Environment variables
func (c *CompilerV2) GetVariables(t *taskfile.Task, call taskfile.Call) (taskfile.Vars, error) {
vr := varResolver{c: c, vars: compiler.GetEnviron()}
vr.merge(c.Taskvars)
vr.merge(c.Taskvars)
vr.merge(c.TaskfileVars)
vr.merge(c.TaskfileVars)
vr.merge(call.Vars)
vr.merge(call.Vars)
vr.merge(t.Vars)
vr.merge(t.Vars)
for _, vars := range []taskfile.Vars{c.Taskvars, c.TaskfileVars, call.Vars, t.Vars} {
for i := 0; i < c.Expansions; i++ {
vr.merge(vars)
}
}
return vr.vars, vr.err
}