Files
Kevin Minehart 13f4cf162e CI: move grafana-build into pkg/build (#105640)
* move grafana-build into pkg/build
2025-05-20 10:48:00 -05:00

30 lines
690 B
Go

package containers
import (
"context"
"errors"
"fmt"
"dagger.io/dagger"
)
var (
ErrorNonZero = errors.New("container exited with non-zero exit code")
)
// ExitError functionally replaces '(*container).ExitCode' in a more usable way.
// It will return an error with the container's stderr and stdout if the exit code is not zero.
func ExitError(ctx context.Context, container *dagger.Container) (*dagger.Container, error) {
container, err := container.Sync(ctx)
if err == nil {
return container, nil
}
var e *dagger.ExecError
if errors.As(err, &e) {
return container, fmt.Errorf("%w\nstdout: %s\nstderr: %s", ErrorNonZero, e.Stdout, e.Stderr)
}
return container, err
}