MCPcopy Create free account
hub / github.com/dropbox/dbxcli / jsonCommandFlags

Function jsonCommandFlags

cmd/help_json.go:419–468  ·  view source on GitHub ↗
(cmd *cobra.Command, metadata map[string]jsonCommandFlagMetadata)

Source from the content-addressed store, hash-verified

417}
418
419func jsonCommandFlags(cmd *cobra.Command, metadata map[string]jsonCommandFlagMetadata) []jsonCommandFlag {
420 flagsByName := make(map[string]jsonCommandFlag)
421 addFlags := func(flags *pflag.FlagSet, inherited bool) {
422 if flags == nil {
423 return
424 }
425 flags.VisitAll(func(flag *pflag.Flag) {
426 if flag.Hidden {
427 return
428 }
429 if _, exists := flagsByName[flag.Name]; exists {
430 return
431 }
432 flagType := ""
433 if flag.Value != nil {
434 flagType = flag.Value.Type()
435 }
436 flagMeta := metadata[flag.Name]
437 flagsByName[flag.Name] = jsonCommandFlag{
438 Name: flag.Name,
439 Type: flagType,
440 Default: flag.DefValue,
441 Usage: flag.Usage,
442 Inherited: inherited,
443 Shorthand: flag.Shorthand,
444 EnumValues: sortedCopyStringSlice(flagMeta.EnumValues),
445 Conflicts: sortedCopyStringSlice(flagMeta.Conflicts),
446 Required: flagMeta.Required,
447 Sensitive: flagMeta.Sensitive,
448 MayPrompt: flagMeta.MayPrompt,
449 ValueKind: commandManifestFlagValueKind(flag, flagMeta),
450 }
451 })
452 }
453
454 addFlags(cmd.NonInheritedFlags(), false)
455 addFlags(cmd.InheritedFlags(), true)
456
457 names := make([]string, 0, len(flagsByName))
458 for name := range flagsByName {
459 names = append(names, name)
460 }
461 sort.Strings(names)
462
463 result := make([]jsonCommandFlag, 0, len(names))
464 for _, name := range names {
465 result = append(result, flagsByName[name])
466 }
467 return result
468}
469
470// CommandManifestFor returns the JSON help manifest for a command.
471func CommandManifestFor(cmd *cobra.Command) jsonCommandManifest {

Callers 1

jsonCommandManifestForFunction · 0.85

Calls 2

sortedCopyStringSliceFunction · 0.85

Tested by

no test coverage detected