Skip to content

Commit 968a29d

Browse files
committed
deduplicate conversion from dep and cmd to call
1 parent ce27e97 commit 968a29d

File tree

1 file changed

+27
-27
lines changed

1 file changed

+27
-27
lines changed

task.go

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -158,24 +158,11 @@ func (e *Executor) runDeps(ctx context.Context, call Call) error {
158158
d := d
159159

160160
g.Go(func() error {
161-
dep, err := e.ReplaceVariables(d.Task, call)
161+
c, err := e.toCall(d.Task, d.Vars, call)
162162
if err != nil {
163163
return err
164164
}
165-
depVars := make(Vars, len(d.Vars))
166-
for k, v := range d.Vars {
167-
static, err := e.ReplaceVariables(v.Static, call)
168-
if err != nil {
169-
return err
170-
}
171-
sh, err := e.ReplaceVariables(v.Sh, call)
172-
if err != nil {
173-
return err
174-
}
175-
depVars[k] = Var{Static: static, Sh: sh}
176-
}
177-
178-
return e.RunTask(ctx, Call{Task: dep, Vars: depVars})
165+
return e.RunTask(ctx, c)
179166
})
180167
}
181168

@@ -259,19 +246,11 @@ func (e *Executor) runCommand(ctx context.Context, call Call, i int) error {
259246
cmd := t.Cmds[i]
260247

261248
if cmd.Cmd == "" {
262-
cmdVars := make(Vars, len(cmd.Vars))
263-
for k, v := range cmd.Vars {
264-
static, err := e.ReplaceVariables(v.Static, call)
265-
if err != nil {
266-
return err
267-
}
268-
sh, err := e.ReplaceVariables(v.Sh, call)
269-
if err != nil {
270-
return err
271-
}
272-
cmdVars[k] = Var{Static: static, Sh: sh}
249+
c, err := e.toCall(cmd.Task, cmd.Vars, call)
250+
if err != nil {
251+
return err
273252
}
274-
return e.RunTask(ctx, Call{Task: cmd.Task, Vars: cmdVars})
253+
return e.RunTask(ctx, c)
275254
}
276255

277256
c, err := e.ReplaceVariables(cmd.Cmd, call)
@@ -311,6 +290,27 @@ func (e *Executor) runCommand(ctx context.Context, call Call, i int) error {
311290
return execext.RunCommand(opts)
312291
}
313292

293+
func (e *Executor) toCall(task string, vs Vars, call Call) (Call, error) {
294+
task, err := e.ReplaceVariables(task, call)
295+
if err != nil {
296+
return Call{}, err
297+
}
298+
299+
newVars := make(Vars, len(vs))
300+
for k, v := range vs {
301+
static, err := e.ReplaceVariables(v.Static, call)
302+
if err != nil {
303+
return Call{}, err
304+
}
305+
sh, err := e.ReplaceVariables(v.Sh, call)
306+
if err != nil {
307+
return Call{}, err
308+
}
309+
newVars[k] = Var{Static: static, Sh: sh}
310+
}
311+
return Call{Task: task, Vars: newVars}, nil
312+
}
313+
314314
func (e *Executor) getTaskDir(call Call) (string, error) {
315315
t := e.Tasks[call.Task]
316316

0 commit comments

Comments
 (0)