package cli import ( "context" "flag" "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 } flags := flag.NewFlagSet("validate", flag.ContinueOnError) flags.SetOutput(stderr) formatFlag := addFormatFlag(flags) if err := flags.Parse(args); err != nil { return exitUsage } format, ok := parseOutputFormat(stderr, "validate", *formatFlag) if !ok { return exitUsage } path, ok := parseOptionalPathArg(stderr, "validate", flags.Args()) if !ok { return exitUsage } if err := app.Validate(ctx, app.ValidateOptions{Path: path, Stdout: stdout, OutputFormat: format}); err != nil { return fail(stderr, err) } return exitOK } func printValidateHelp(w io.Writer) { fmt.Fprint(w, `Usage: distributor validate [--format text|json] Options: --format text|json Output format Validate a local source bundle directory or a tree containing source bundles. `) }