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

Handle ignore_error one level up on the code

This commit is contained in:
Andrey Nering
2018-08-05 12:40:11 -03:00
parent 550c116aea
commit c70343a5bc
2 changed files with 22 additions and 25 deletions

23
task.go
View File

@ -19,6 +19,7 @@ import (
"github.com/Masterminds/semver"
"golang.org/x/sync/errgroup"
"mvdan.cc/sh/interp"
)
const (
@ -221,16 +222,20 @@ func (e *Executor) runCommand(ctx context.Context, t *taskfile.Task, call taskfi
defer stdOut.Close()
defer stdErr.Close()
return execext.RunCommand(&execext.RunCommandOptions{
Context: ctx,
Command: cmd.Cmd,
Dir: t.Dir,
Env: getEnviron(t),
Stdin: e.Stdin,
Stdout: stdOut,
Stderr: stdErr,
IgnoreErrorCode: cmd.IgnoreError,
err := execext.RunCommand(&execext.RunCommandOptions{
Context: ctx,
Command: cmd.Cmd,
Dir: t.Dir,
Env: getEnviron(t),
Stdin: e.Stdin,
Stdout: stdOut,
Stderr: stdErr,
})
if _, ok := err.(interp.ExitCode); ok && cmd.IgnoreError {
e.Logger.VerboseErrf("task: command error ignored: %v", err)
return nil
}
return err
default:
return nil
}