| 373 | } |
| 374 | |
| 375 | func jsonCommandManifestFor(cmd *cobra.Command) jsonCommandManifest { |
| 376 | cmd.InitDefaultHelpFlag() |
| 377 | cmd.InitDefaultVersionFlag() |
| 378 | path := jsonManifestCommandPath(cmd) |
| 379 | meta := commandManifestMetadataFor(path) |
| 380 | supportsStructuredOutput := commandSupportsStructuredOutput(cmd) |
| 381 | flags := jsonCommandFlags(cmd, meta.Flags) |
| 382 | args := normalizeJSONCommandArgs(meta.Args) |
| 383 | |
| 384 | return jsonCommandManifest{ |
| 385 | Path: path, |
| 386 | Use: cmd.UseLine(), |
| 387 | Short: cmd.Short, |
| 388 | Aliases: sortedCopyStringSlice(cmd.Aliases), |
| 389 | Runnable: cmd.Runnable(), |
| 390 | Flags: flags, |
| 391 | SupportsStructuredOutput: supportsStructuredOutput, |
| 392 | AuthModes: commandManifestAuthModes(cmd), |
| 393 | DestructiveLevel: commandManifestDestructiveLevel(cmd), |
| 394 | ManifestVersion: commandManifestVersion, |
| 395 | Args: args, |
| 396 | Examples: normalizeJSONCommandExamples(meta.Examples), |
| 397 | SchemaRefs: commandManifestSchemaRefs(path, supportsStructuredOutput), |
| 398 | DropboxScopes: sortedCopyStringSlice(meta.DropboxScopes), |
| 399 | ScopeAccuracy: commandManifestScopeAccuracy(meta), |
| 400 | StdinStdout: commandManifestStdinStdout(meta), |
| 401 | ResultStatuses: sortedCopyStringSlice(meta.ResultStatuses), |
| 402 | ResultKinds: sortedCopyStringSlice(meta.ResultKinds), |
| 403 | WarningCodes: sortedCopyStringSlice(meta.WarningCodes), |
| 404 | MayPrompt: meta.MayPrompt, |
| 405 | InputSchema: commandInputSchemaFor(args, commandInputSchemaFlags(cmd, flags)), |
| 406 | } |
| 407 | } |
| 408 | |
| 409 | func jsonManifestCommandPath(cmd *cobra.Command) string { |
| 410 | if cmd == nil { |