Documentation
¶
Index ¶
- Variables
- func ArbitraryArgs(c *Command, args []string) error
- func ConfigureRootCommand(ctx *Context, cmd *Command)
- func GenMarkdown(c *Command, w io.Writer, link LinkHandler) error
- func GenMarkdownTree(c *Command, dir string, link LinkHandler) error
- func GenNavJSON(c *Command, w io.Writer) error
- func NewExitError(code int, wrapErr error) error
- func NoArgs(c *Command, args []string) error
- func RequireOrgAndProject(ctx *Context) error
- func RequireOrganization(ctx *Context) error
- func RootHelpFunc(c *Command) func(map[string]cli.CommandFactory) string
- func ToCommandMap(c *Command) map[string]cli.CommandFactory
- type Command
- type CompatibleCommand
- func (cc *CompatibleCommand) AutocompleteArgs() complete.Predictor
- func (cc *CompatibleCommand) AutocompleteFlags() complete.Flags
- func (cc *CompatibleCommand) Help() string
- func (cc *CompatibleCommand) HelpTemplate() string
- func (cc *CompatibleCommand) Run(args []string) int
- func (cc *CompatibleCommand) Synopsis() string
- type Context
- type DocNavItem
- type DocSection
- type Example
- type ExitCodeError
- type Flag
- type Flags
- type GlobalFlags
- type LinkHandler
- type PositionalArgument
- type PositionalArguments
- type ValidateArgsFunc
Constants ¶
This section is empty.
Variables ¶
var ( // ErrDisplayHelp can be returned from a run command to print the help text. ErrDisplayHelp = errors.New("help") // ErrDisplayUsage can be returned from a run command to print the usage text. ErrDisplayUsage = errors.New("usage") )
Functions ¶
func ArbitraryArgs ¶
ArbitraryArgs never returns an error and is used to bypass argument validation at the command level.
func ConfigureRootCommand ¶
ConfigureRootCommand should be only called on the root command. It configures global flags and ensures that the context is configured based on any flags set during a command invocation.
func GenMarkdown ¶
func GenMarkdown(c *Command, w io.Writer, link LinkHandler) error
GenMarkdown creates custom markdown output.
func GenMarkdownTree ¶
func GenMarkdownTree(c *Command, dir string, link LinkHandler) error
func GenNavJSON ¶
GenNavJSON generates the navigation JSON in the format that hcp-docs expects, for the command structure.
func NewExitError ¶ added in v0.3.0
NewExitError returns an ExitCodeError. This can be returned to have the command exit code be set to a specific value.
func RequireOrgAndProject ¶
RequireOrgAndProject requires that the profile has a set project and organization ID.
func RequireOrganization ¶
RequireOrganization requires that the profile has a set organization ID.
func RootHelpFunc ¶
func RootHelpFunc(c *Command) func(map[string]cli.CommandFactory) string
RootHelpFunc returns a help function that meets the mitchellh/cli interface for help functions.
func ToCommandMap ¶
func ToCommandMap(c *Command) map[string]cli.CommandFactory
ToCommandMap converts a Command and its children to a mitchellh/cli command factory map. The passed Command should be the root command.
Types ¶
type Command ¶
type Command struct {
// Name is the name of the command.
Name string
// Aliases is an array of aliases that can be used instead of the first word
// in Usage.
Aliases []string
// ShortHelp is the short description shown when listing subcommands or when
// the command is incorrectly invoked.
ShortHelp string
// LongHelp is the long message shown in the '<this-command> --help' output.
LongHelp string
// Examples is a set of examples of how to use the command.
Examples []Example
// AdditionalDocs allows adding additional documentation sections.
AdditionalDocs []DocSection
// PersistentPreRun is the set of functions to run for this command and all
// subcommands.
PersistentPreRun func(c *Command, args []string) error
// RunF is the function that will be run when the command is invoked. It may
// be nil if the command contains children.
RunF func(c *Command, args []string) error
// NoAuthRequired allows a command to indicate that authentication is not
// required to be invoked.
NoAuthRequired bool
// Args documents the expected positional arguments.
Args PositionalArguments
// Flags is the set of flags for this command.
Flags Flags
// contains filtered or unexported fields
}
Command is used to construct a command.
To create a command that should not be invoked itself but is only used to nest sub-commands, construct the Command without a Run function and call AddChild to add the child commands.
type CompatibleCommand ¶
type CompatibleCommand struct {
// contains filtered or unexported fields
}
CompatibleCommand is a compatibility layer for interopability with the `cli` package.
func (*CompatibleCommand) AutocompleteArgs ¶
func (cc *CompatibleCommand) AutocompleteArgs() complete.Predictor
AutocompleteArgs implements cli.CommandAutocomplete.
func (*CompatibleCommand) AutocompleteFlags ¶
func (cc *CompatibleCommand) AutocompleteFlags() complete.Flags
AutocompleteFlags implements cli.CommandAutocomplete.
func (*CompatibleCommand) Help ¶
func (cc *CompatibleCommand) Help() string
Help implements cli.Command.
func (*CompatibleCommand) HelpTemplate ¶
func (cc *CompatibleCommand) HelpTemplate() string
HelpTemplate implements cli.CommandHelpTemplate.
func (*CompatibleCommand) Run ¶
func (cc *CompatibleCommand) Run(args []string) int
func (*CompatibleCommand) Synopsis ¶
func (cc *CompatibleCommand) Synopsis() string
Synopsis implements cli.Command.
type Context ¶
type Context struct {
// IO is used to interact directly with IO or the terminal.
IO iostreams.IOStreams
// Profile is used to retrieve configuration.
Profile *profile.Profile
// Output is used to print structured output.
Output *format.Outputter
// HCP is the HTTP transport for connecting to HCP APIs.
HCP *httptransport.Runtime
// ShutdownCtx is a context that is cancelled if the user requests the
// command to be shutdown. If a command can block for an extended amount of
// time, the context should be used to exit early.
ShutdownCtx context.Context
// contains filtered or unexported fields
}
Context passes global objects for constructing and invoking a command.
func (*Context) GetGlobalFlags ¶
func (ctx *Context) GetGlobalFlags() GlobalFlags
func (*Context) ParseFlags ¶
ParseFlags can be used to parse the flags for a given command before it is run. This can be helpful in very specific cases such as accessing flags during autocompletion. The return args are the non-flag arguments.
type DocNavItem ¶ added in v0.3.0
type DocNavItem struct {
}
DocNavItem is a single item in the navigation JSON.
type DocSection ¶
type DocSection struct {
// The title of the section.
Title string
// Section documentation. No additional formatting will be applied other
// than indenting.
Documentation string
}
DocSection allows adding additional documentation sections.
type Example ¶
type Example struct {
// Preamble is plaintext displayed before the command. Must be set, start
// with a captital letter, and end with a colon.
Preamble string
// Command is the command example and any output it may contain
Command string
}
Example is an example of how to use a given command.
type ExitCodeError ¶ added in v0.3.0
ExitCodeError is an error that includes an exit code. If returned by a command run, the command will exit using the specified exit code.
func (*ExitCodeError) Error ¶ added in v0.3.0
func (e *ExitCodeError) Error() string
func (*ExitCodeError) Unwrap ¶ added in v0.3.0
func (e *ExitCodeError) Unwrap() error
type Flag ¶
type Flag struct {
// Name is the name of the flag. The name must be lower case.
Name string
// Shorthand is an optional shorthand for the flag. Name must still be set
// and shorthand can only be a single, lowercase character.
Shorthand string
// Description is the description of the flag.
Description string
// DisplayValue is an optional string that will be used when displaying
// help for using the flag. If set, the displayed value will be
// --Name=DISPLAY_NAME, otherwise it will just be --Name.
//
// As an example, a Flag with the name "project" and display value of "ID",
// would be displayed as "--project=ID".
//
// DisplayValue must be upper case.
DisplayValue string
// Value is the value that will be set by the flag. The value should be set
// using flagvalue package.
//
// Examples are:
//
// flagvalue.Simple("", &destination)
// flagvalue.Enum[string]([]string{"ONE", "TWO"}, "", &myEnum)
Value flagvalue.Value
// IsBooleanFlag indicates that the flag is a boolean flag.
IsBooleanFlag bool
// InvertBooleanNoValue treats the boolean flag as being specified to equal
// the value false. This should be set if the flag indicates the disabling
// of a value (e.g. --no-replication).
InvertBooleanNoValue bool
// Repeatable marks whether the positional argument can be repeated.
Repeatable bool
// Required marks whether the flag is required.
Required bool
// Hidden hides the flag.
Hidden bool
// Autocomplete is the predictor for this flag.
Autocomplete complete.Predictor
// contains filtered or unexported fields
}
Flag instantiates a flag. An example flag is:
Flag{
Name: "project",
Shorthand: "p",
DisplayValue: "ID",
Description: "project sets the project ID to target.",
Value: flagvalue.Simple("", &projectID),
Required: true,
}
type GlobalFlags ¶
type GlobalFlags struct {
// Quiet indicates the user has requested minimal output
Quiet bool
// contains filtered or unexported fields
}
GlobalFlags contains the global flags.
type LinkHandler ¶
LinkHandler is a function that can be used to modify the links in the generated markdown. The path string is the unmodified path to the file.
type PositionalArgument ¶
type PositionalArgument struct {
// Name is the name of the positional argument
Name string
// Preamble is plaintext displayed before the command
Documentation string
// Optional marks the argument as optional. If set, the argument must be the
// last argument or all positional arguments following this must be optional
// as well.
Optional bool
// Repeatable marks whether the positional argument can be repeated. Only
// the last argument is repeatable.
Repeatable bool
}
PositionalArgument documents a positional argument.
type PositionalArguments ¶
type PositionalArguments struct {
// Preamble allows injecting documentation before individual positional
// arguments. It is optional.
Preamble string
// Args in an inorder list of arguments.
Args []PositionalArgument
// Validate if set is invoked to validate the command has received an
// expected set of arguments. If not set, it will be defaulted based on the
// passed Args. If no args are set, NoArgs will be enforced. If all
// arguments are not repeated, ExactArgs will be used, otherwise,
// MinimumNArgs will be set. To bypass argument validation, set this to
// ArbitraryArgs.
Validate ValidateArgsFunc
// Autocomplete allows configuring autocompletion of arguments.
Autocomplete complete.Predictor
}
PositionalArguments documents a positional argument in a command.
type ValidateArgsFunc ¶
ValidateArgsFunc is a function used to validate a command has received valid arguments.
func ExactArgs ¶
func ExactArgs(n int) ValidateArgsFunc
ExactArgs returns an error if there are not exactly N args.
func MaximumNArgs ¶
func MaximumNArgs(n int) ValidateArgsFunc
MaximumNArgs returns an error if there are more than N (inclusive) args.
func MinimumNArgs ¶
func MinimumNArgs(n int) ValidateArgsFunc
MinimumNArgs returns an error if there is not at least N (inclusive) args.
func RangeArgs ¶
func RangeArgs(min int, max int) ValidateArgsFunc
RangeArgs returns an error if the number of args is not within the expected range.