mirror of
https://github.com/livekit/livekit.git
synced 2026-04-26 15:17:35 +00:00
command to show help with hidden generated flags (#1171)
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user