mirror of
https://github.com/rancher/steve.git
synced 2025-09-03 00:15:27 +00:00
Refactor
This commit is contained in:
72
pkg/debug/cli.go
Normal file
72
pkg/debug/cli.go
Normal file
@@ -0,0 +1,72 @@
|
||||
package debug
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/urfave/cli"
|
||||
cliv2 "github.com/urfave/cli/v2"
|
||||
"k8s.io/klog"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
Debug bool
|
||||
DebugLevel int
|
||||
}
|
||||
|
||||
func (c *Config) MustSetupDebug() {
|
||||
err := c.SetupDebug()
|
||||
if err != nil {
|
||||
panic("failed to setup debug logging: " + err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Config) SetupDebug() error {
|
||||
logging := flag.NewFlagSet("", flag.PanicOnError)
|
||||
klog.InitFlags(logging)
|
||||
if c.Debug {
|
||||
logrus.SetLevel(logrus.DebugLevel)
|
||||
if err := logging.Parse([]string{
|
||||
fmt.Sprintf("-v=%d", c.DebugLevel),
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
if err := logging.Parse([]string{
|
||||
"-v=0",
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func Flags(config *Config) []cli.Flag {
|
||||
return []cli.Flag{
|
||||
cli.BoolFlag{
|
||||
Name: "debug",
|
||||
Destination: &config.Debug,
|
||||
},
|
||||
cli.IntFlag{
|
||||
Name: "debug-level",
|
||||
Value: 7,
|
||||
Destination: &config.DebugLevel,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func FlagsV2(config *Config) []cliv2.Flag {
|
||||
return []cliv2.Flag{
|
||||
&cliv2.BoolFlag{
|
||||
Name: "debug",
|
||||
Destination: &config.Debug,
|
||||
},
|
||||
&cliv2.IntFlag{
|
||||
Name: "debug-level",
|
||||
Value: 7,
|
||||
Destination: &config.DebugLevel,
|
||||
},
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user