Add package flagzog:
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run
- Add FlagValidator interface - Add BoolFlag - Add Int64Flag - Add StringFlag Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
This commit is contained in:
27
flagzog/validator.go
Normal file
27
flagzog/validator.go
Normal file
@ -0,0 +1,27 @@
|
||||
package flagzog
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log/slog"
|
||||
)
|
||||
|
||||
type FlagValidator interface {
|
||||
Name() string
|
||||
Validate() ([]string, error)
|
||||
Usage() string
|
||||
}
|
||||
|
||||
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
|
||||
}
|
Reference in New Issue
Block a user