1
0
mirror of https://github.com/go-task/task.git synced 2025-07-17 01:43:07 +02:00

refactor: move TaskRunError handling into main function

This commit is contained in:
Pete Davison
2023-04-27 10:49:42 +00:00
committed by Andrey Nering
parent 745de72d7e
commit 6633e65ee6

View File

@ -15,7 +15,6 @@ import (
"github.com/go-task/task/v3" "github.com/go-task/task/v3"
"github.com/go-task/task/v3/args" "github.com/go-task/task/v3/args"
"github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/errors"
"github.com/go-task/task/v3/internal/logger"
"github.com/go-task/task/v3/internal/sort" "github.com/go-task/task/v3/internal/sort"
ver "github.com/go-task/task/v3/internal/version" ver "github.com/go-task/task/v3/internal/version"
"github.com/go-task/task/v3/taskfile" "github.com/go-task/task/v3/taskfile"
@ -71,6 +70,10 @@ var flags struct {
func main() { func main() {
if err := run(); err != nil { if err := run(); err != nil {
if err, ok := err.(*errors.TaskRunError); ok && flags.exitCode {
log.Print(err.Error())
os.Exit(err.TaskExitCode())
}
if err, ok := err.(errors.TaskError); ok { if err, ok := err.(errors.TaskError); ok {
log.Print(err.Error()) log.Print(err.Error())
os.Exit(err.Code()) os.Exit(err.Code())
@ -255,17 +258,7 @@ func run() error {
return e.Status(ctx, calls...) return e.Status(ctx, calls...)
} }
if err := e.Run(ctx, calls...); err != nil { return e.Run(ctx, calls...)
e.Logger.Errf(logger.Red, "%v\n", err)
if flags.exitCode {
if err, ok := err.(*errors.TaskRunError); ok {
os.Exit(err.TaskExitCode())
}
}
return err
}
return nil
} }
func getArgs() ([]string, string, error) { func getArgs() ([]string, string, error) {