mirror of
https://github.com/luxfi/cli.git
synced 2026-10-30 17:01:20 +00:00
66 lines
1.9 KiB
Go
66 lines
1.9 KiB
Go
// Copyright (C) 2022-2025, Lux Industries Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package flags
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/spf13/pflag"
|
|
|
|
"github.com/luxfi/constants"
|
|
"github.com/luxfi/log/level"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
const (
|
|
aggregatorLogLevelFlag = "aggregator-log-level"
|
|
aggregatorLogToStdoutFlag = "aggregator-log-to-stdout"
|
|
)
|
|
|
|
type SignatureAggregatorFlags struct {
|
|
AggregatorLogLevel string
|
|
AggregatorLogToStdout bool
|
|
}
|
|
|
|
func validateSignatureAggregatorFlags(sigAggFlags SignatureAggregatorFlags) error {
|
|
if _, err := level.ToLevel(sigAggFlags.AggregatorLogLevel); err != nil {
|
|
return fmt.Errorf(
|
|
"invalid log level: %q. Available values: %s, %s, %s, %s, %s, %s, %s, %s",
|
|
sigAggFlags.AggregatorLogLevel,
|
|
level.Info.LowerString(),
|
|
level.Warn.LowerString(),
|
|
level.Error.LowerString(),
|
|
level.Off.LowerString(),
|
|
level.Fatal.LowerString(),
|
|
level.Debug.LowerString(),
|
|
level.Trace.LowerString(),
|
|
level.Verbo.LowerString(),
|
|
)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func AddSignatureAggregatorFlagsToCmd(cmd *cobra.Command, sigAggFlags *SignatureAggregatorFlags) GroupedFlags {
|
|
return RegisterFlagGroup(cmd, "Signature Aggregator Flags", "show-signature-aggregator-flags", false, func(set *pflag.FlagSet) {
|
|
set.StringVar(&sigAggFlags.AggregatorLogLevel, aggregatorLogLevelFlag, constants.DefaultAggregatorLogLevel, "log level to use with signature aggregator")
|
|
sigAggPreRun := func(_ *cobra.Command, _ []string) error {
|
|
if err := validateSignatureAggregatorFlags(*sigAggFlags); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
existingPreRunE := cmd.PreRunE
|
|
cmd.PreRunE = func(cmd *cobra.Command, args []string) error {
|
|
if existingPreRunE != nil {
|
|
if err := existingPreRunE(cmd, args); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return sigAggPreRun(cmd, args)
|
|
}
|
|
set.BoolVar(&sigAggFlags.AggregatorLogToStdout, aggregatorLogToStdoutFlag, false, "use stdout for signature aggregator logs")
|
|
})
|
|
}
|