mirror of
https://github.com/go-task/task.git
synced 2025-03-19 21:17:46 +02:00
deduplicate conversion from dep and cmd to call
This commit is contained in:
parent
ce27e973be
commit
968a29d869
54
task.go
54
task.go
@ -158,24 +158,11 @@ func (e *Executor) runDeps(ctx context.Context, call Call) error {
|
|||||||
d := d
|
d := d
|
||||||
|
|
||||||
g.Go(func() error {
|
g.Go(func() error {
|
||||||
dep, err := e.ReplaceVariables(d.Task, call)
|
c, err := e.toCall(d.Task, d.Vars, call)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
depVars := make(Vars, len(d.Vars))
|
return e.RunTask(ctx, c)
|
||||||
for k, v := range d.Vars {
|
|
||||||
static, err := e.ReplaceVariables(v.Static, call)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
sh, err := e.ReplaceVariables(v.Sh, call)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
depVars[k] = Var{Static: static, Sh: sh}
|
|
||||||
}
|
|
||||||
|
|
||||||
return e.RunTask(ctx, Call{Task: dep, Vars: depVars})
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -259,19 +246,11 @@ func (e *Executor) runCommand(ctx context.Context, call Call, i int) error {
|
|||||||
cmd := t.Cmds[i]
|
cmd := t.Cmds[i]
|
||||||
|
|
||||||
if cmd.Cmd == "" {
|
if cmd.Cmd == "" {
|
||||||
cmdVars := make(Vars, len(cmd.Vars))
|
c, err := e.toCall(cmd.Task, cmd.Vars, call)
|
||||||
for k, v := range cmd.Vars {
|
if err != nil {
|
||||||
static, err := e.ReplaceVariables(v.Static, call)
|
return err
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
sh, err := e.ReplaceVariables(v.Sh, call)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
cmdVars[k] = Var{Static: static, Sh: sh}
|
|
||||||
}
|
}
|
||||||
return e.RunTask(ctx, Call{Task: cmd.Task, Vars: cmdVars})
|
return e.RunTask(ctx, c)
|
||||||
}
|
}
|
||||||
|
|
||||||
c, err := e.ReplaceVariables(cmd.Cmd, call)
|
c, err := e.ReplaceVariables(cmd.Cmd, call)
|
||||||
@ -311,6 +290,27 @@ func (e *Executor) runCommand(ctx context.Context, call Call, i int) error {
|
|||||||
return execext.RunCommand(opts)
|
return execext.RunCommand(opts)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (e *Executor) toCall(task string, vs Vars, call Call) (Call, error) {
|
||||||
|
task, err := e.ReplaceVariables(task, call)
|
||||||
|
if err != nil {
|
||||||
|
return Call{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
newVars := make(Vars, len(vs))
|
||||||
|
for k, v := range vs {
|
||||||
|
static, err := e.ReplaceVariables(v.Static, call)
|
||||||
|
if err != nil {
|
||||||
|
return Call{}, err
|
||||||
|
}
|
||||||
|
sh, err := e.ReplaceVariables(v.Sh, call)
|
||||||
|
if err != nil {
|
||||||
|
return Call{}, err
|
||||||
|
}
|
||||||
|
newVars[k] = Var{Static: static, Sh: sh}
|
||||||
|
}
|
||||||
|
return Call{Task: task, Vars: newVars}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (e *Executor) getTaskDir(call Call) (string, error) {
|
func (e *Executor) getTaskDir(call Call) (string, error) {
|
||||||
t := e.Tasks[call.Task]
|
t := e.Tasks[call.Task]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user