Files
go-kit/flagzog/validator.go
Jan Tytgat 13831390bd
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 33s
Add function "AddToCommandFlags" to FlagValidator interface
Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
2025-06-12 17:01:05 +02:00

31 lines
745 B
Go

package flagzog
import (
"context"
"log/slog"
"github.com/spf13/pflag"
)
type FlagValidator interface {
Name() string
Validate() ([]string, error)
Usage() string
AddToCommandFlags(flagset *pflag.FlagSet, shorthand string, value interface{})
}
func ValidateFlags(ctx context.Context, logger *slog.Logger, flags []FlagValidator) ([]string, error) {
var validatedFlags []string
var err error
for _, flag := range flags {
var issues []string
if issues, err = flag.Validate(); err != nil {
logger.Log(ctx, slog.LevelError, "validation failed", slog.String("flag", flag.Name()), slog.Any("issues", issues))
return validatedFlags, err
}
validatedFlags = append(validatedFlags, flag.Name())
}
return validatedFlags, nil
}