mirror of
https://github.com/go-task/task.git
synced 2025-04-25 12:25:07 +02:00
parent
1a3df08aca
commit
51998f706f
@ -17,9 +17,12 @@ var _ compiler.Compiler = &CompilerV2{}
|
|||||||
|
|
||||||
type CompilerV2 struct {
|
type CompilerV2 struct {
|
||||||
Dir string
|
Dir string
|
||||||
|
|
||||||
Taskvars taskfile.Vars
|
Taskvars taskfile.Vars
|
||||||
TaskfileVars taskfile.Vars
|
TaskfileVars taskfile.Vars
|
||||||
|
|
||||||
|
Expansions int
|
||||||
|
|
||||||
Logger *logger.Logger
|
Logger *logger.Logger
|
||||||
|
|
||||||
dynamicCache map[string]string
|
dynamicCache map[string]string
|
||||||
@ -34,14 +37,11 @@ type CompilerV2 struct {
|
|||||||
// 5. Environment variables
|
// 5. Environment variables
|
||||||
func (c *CompilerV2) GetVariables(t *taskfile.Task, call taskfile.Call) (taskfile.Vars, error) {
|
func (c *CompilerV2) GetVariables(t *taskfile.Task, call taskfile.Call) (taskfile.Vars, error) {
|
||||||
vr := varResolver{c: c, vars: compiler.GetEnviron()}
|
vr := varResolver{c: c, vars: compiler.GetEnviron()}
|
||||||
vr.merge(c.Taskvars)
|
for _, vars := range []taskfile.Vars{c.Taskvars, c.TaskfileVars, call.Vars, t.Vars} {
|
||||||
vr.merge(c.Taskvars)
|
for i := 0; i < c.Expansions; i++ {
|
||||||
vr.merge(c.TaskfileVars)
|
vr.merge(vars)
|
||||||
vr.merge(c.TaskfileVars)
|
}
|
||||||
vr.merge(call.Vars)
|
}
|
||||||
vr.merge(call.Vars)
|
|
||||||
vr.merge(t.Vars)
|
|
||||||
vr.merge(t.Vars)
|
|
||||||
return vr.vars, vr.err
|
return vr.vars, vr.err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package taskfile
|
|||||||
// Taskfile represents a Taskfile.yml
|
// Taskfile represents a Taskfile.yml
|
||||||
type Taskfile struct {
|
type Taskfile struct {
|
||||||
Version string
|
Version string
|
||||||
|
Expansions int
|
||||||
Vars Vars
|
Vars Vars
|
||||||
Tasks Tasks
|
Tasks Tasks
|
||||||
}
|
}
|
||||||
@ -16,6 +17,7 @@ func (tf *Taskfile) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
|||||||
|
|
||||||
var taskfile struct {
|
var taskfile struct {
|
||||||
Version string
|
Version string
|
||||||
|
Expansions int
|
||||||
Vars Vars
|
Vars Vars
|
||||||
Tasks Tasks
|
Tasks Tasks
|
||||||
}
|
}
|
||||||
@ -23,7 +25,11 @@ func (tf *Taskfile) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
tf.Version = taskfile.Version
|
tf.Version = taskfile.Version
|
||||||
|
tf.Expansions = taskfile.Expansions
|
||||||
tf.Vars = taskfile.Vars
|
tf.Vars = taskfile.Vars
|
||||||
tf.Tasks = taskfile.Tasks
|
tf.Tasks = taskfile.Tasks
|
||||||
|
if tf.Expansions <= 0 {
|
||||||
|
tf.Expansions = 2
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user