Files
distributor/internal/cli/validate.go

48 lines
1.2 KiB
Go

package cli
import (
"context"
"fmt"
"io"
"gitea.maximumdirect.net/eric/distributor/internal/app"
)
func validateCommand(ctx context.Context, args []string, stdout, stderr io.Writer) int {
if hasHelp(args) {
printValidateHelp(stdout)
return exitOK
}
parsed, ok := parseSourceDiagnosticArgs(stderr, "validate", args)
if !ok {
return exitUsage
}
if err := app.Validate(ctx, app.ValidateOptions{
Path: parsed.Path,
ConfigPath: parsed.ConfigPath,
PipelineID: parsed.PipelineID,
BundlePath: parsed.BundlePath,
Stdout: stdout,
OutputFormat: parsed.OutputFormat,
}); err != nil {
return fail(stderr, err)
}
return exitOK
}
func printValidateHelp(w io.Writer) {
fmt.Fprint(w, `Usage:
distributor validate [--format text|json] <path>
distributor validate --config <path> --pipeline <id> [--bundle <path>] [--format text|json]
Options:
--config <path> Path to config file for configured source validation
--pipeline <id> Pipeline id to validate in config mode
--bundle <path> Source-root-relative bundle path to validate
--format text|json Output format
Validate a local source bundle directory, a local source bundle tree, or a
configured pipeline source.
`)
}