command to show help with hidden generated flags (#1171)

This commit is contained in:
Mathew Kamkar
2022-11-16 19:20:22 -08:00
committed by GitHub
parent 2c2c6f9da2
commit 8c8a4d245c
4 changed files with 26 additions and 11 deletions

View File

@@ -15,6 +15,7 @@ import (
"github.com/livekit/protocol/auth"
"github.com/livekit/protocol/utils"
"github.com/livekit/livekit-server/pkg/config"
"github.com/livekit/livekit-server/pkg/routing"
"github.com/livekit/livekit-server/pkg/service"
)
@@ -67,6 +68,16 @@ func printPorts(c *cli.Context) error {
return nil
}
func hiddenHelp(c *cli.Context) error {
generatedFlags, err := config.GenerateCLIFlags(baseFlags, false)
if err != nil {
return err
}
c.App.Flags = append(baseFlags, generatedFlags...)
return cli.ShowAppHelp(c)
}
func createToken(c *cli.Context) error {
room := c.String("room")
identity := c.String("identity")

View File

@@ -102,7 +102,7 @@ func init() {
}
func main() {
generatedFlags, err := config.GenerateCLIFlags(baseFlags)
generatedFlags, err := config.GenerateCLIFlags(baseFlags, true)
if err != nil {
fmt.Println(err)
}
@@ -153,6 +153,11 @@ func main() {
Usage: "list all nodes",
Action: listNodes,
},
{
Name: "hidden-help",
Usage: "prints app help and includes all hidden generated configuration flags",
Action: hiddenHelp,
},
},
Version: version.Version,
}

View File

@@ -24,8 +24,7 @@ var DefaultStunServers = []string{
type CongestionControlProbeMode string
const (
generatedCLIFlagsHidden = true
generatedCLIFlagUsage = "generated"
generatedCLIFlagUsage = "generated"
CongestionControlProbeModePadding CongestionControlProbeMode = "padding"
CongestionControlProbeModeMedia CongestionControlProbeMode = "media"
@@ -398,7 +397,7 @@ func (conf *Config) ToCLIFlagNames(existingFlags []cli.Flag) map[string]reflect.
return flagNames
}
func GenerateCLIFlags(existingFlags []cli.Flag) ([]cli.Flag, error) {
func GenerateCLIFlags(existingFlags []cli.Flag, hidden bool) ([]cli.Flag, error) {
blankConfig := &Config{}
flags := []cli.Flag{}
for name, value := range blankConfig.ToCLIFlagNames(existingFlags) {
@@ -415,42 +414,42 @@ func GenerateCLIFlags(existingFlags []cli.Flag) ([]cli.Flag, error) {
flag = &cli.BoolFlag{
Name: name,
Usage: generatedCLIFlagUsage,
Hidden: generatedCLIFlagsHidden,
Hidden: hidden,
}
case reflect.String:
flag = &cli.StringFlag{
Name: name,
EnvVars: []string{envVar},
Usage: generatedCLIFlagUsage,
Hidden: generatedCLIFlagsHidden,
Hidden: hidden,
}
case reflect.Int, reflect.Int32:
flag = &cli.IntFlag{
Name: name,
EnvVars: []string{envVar},
Usage: generatedCLIFlagUsage,
Hidden: generatedCLIFlagsHidden,
Hidden: hidden,
}
case reflect.Int64:
flag = &cli.Int64Flag{
Name: name,
EnvVars: []string{envVar},
Usage: generatedCLIFlagUsage,
Hidden: generatedCLIFlagsHidden,
Hidden: hidden,
}
case reflect.Uint8, reflect.Uint16, reflect.Uint32:
flag = &cli.UintFlag{
Name: name,
EnvVars: []string{envVar},
Usage: generatedCLIFlagUsage,
Hidden: generatedCLIFlagsHidden,
Hidden: hidden,
}
case reflect.Float32:
flag = &cli.Float64Flag{
Name: name,
EnvVars: []string{envVar},
Usage: generatedCLIFlagUsage,
Hidden: generatedCLIFlagsHidden,
Hidden: hidden,
}
case reflect.Slice:
// TODO

View File

@@ -34,7 +34,7 @@ room:
}
func TestGeneratedFlags(t *testing.T) {
generatedFlags, err := GenerateCLIFlags(nil)
generatedFlags, err := GenerateCLIFlags(nil, false)
require.NoError(t, err)
app := cli.NewApp()