Documentation
¶
Overview ¶
package cmdln is a library for writing command-line tools.
Index ¶
- type ArgumentSet
- func (argset *ArgumentSet) AcceptMany(name, desc string, set func([]string) error)
- func (argset *ArgumentSet) AcceptOne(name, desc string, set func(string) error)
- func (argset *ArgumentSet) Bool(name string, ptr *bool, desc string)
- func (argset *ArgumentSet) Duration(name string, ptr *time.Duration, desc string)
- func (argset *ArgumentSet) Flag(name string, ptr FlagValue, desc string)
- func (argset *ArgumentSet) Float64(name string, ptr *float64, desc string)
- func (argset *ArgumentSet) Int(name string, ptr *int, desc string)
- func (argset *ArgumentSet) Int64(name string, ptr *int64, desc string)
- func (argset *ArgumentSet) Parse(args []string) error
- func (argset *ArgumentSet) Require(name, desc string, set func(string) error)
- func (argset *ArgumentSet) RequireOneOrMore(name, desc string, set func([]string) error)
- func (argset *ArgumentSet) Short(alias, dst string)
- func (argset *ArgumentSet) String(name string, ptr *string, desc string)
- func (argset *ArgumentSet) Summary(desc string)
- func (argset *ArgumentSet) Text(name string, dst TextValue, desc string)
- func (argset *ArgumentSet) Uint(name string, dst *uint, desc string)
- func (argset *ArgumentSet) Uint64(name string, dst *uint64, desc string)
- func (argset *ArgumentSet) Usage(desc string)
- type Command
- type CommandSet
- func (cmds *CommandSet) Alias(prefix, alias, aliasFor string)
- func (cmds *CommandSet) Cmd(name string, cmd Command)
- func (cmds *CommandSet) Help() Command
- func (cmds *CommandSet) HelpWithExtraTopics(extra map[string]string) Command
- func (cmds *CommandSet) Run(ctx context.Context, args []string) (err error)
- type FlagValue
- type TextValue
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ArgumentSet ¶
type ArgumentSet struct {
// contains filtered or unexported fields
}
An ArgumentSet is a set of flags and positional arguments for a CLI program.
func (*ArgumentSet) AcceptMany ¶
func (argset *ArgumentSet) AcceptMany(name, desc string, set func([]string) error)
func (*ArgumentSet) AcceptOne ¶
func (argset *ArgumentSet) AcceptOne(name, desc string, set func(string) error)
func (*ArgumentSet) Duration ¶
func (argset *ArgumentSet) Duration(name string, ptr *time.Duration, desc string)
func (*ArgumentSet) Float64 ¶
func (argset *ArgumentSet) Float64(name string, ptr *float64, desc string)
func (*ArgumentSet) Parse ¶
func (argset *ArgumentSet) Parse(args []string) error
func (*ArgumentSet) Require ¶
func (argset *ArgumentSet) Require(name, desc string, set func(string) error)
func (*ArgumentSet) RequireOneOrMore ¶
func (argset *ArgumentSet) RequireOneOrMore(name, desc string, set func([]string) error)
func (*ArgumentSet) Short ¶
func (argset *ArgumentSet) Short(alias, dst string)
func (*ArgumentSet) String ¶
func (argset *ArgumentSet) String(name string, ptr *string, desc string)
func (*ArgumentSet) Summary ¶
func (argset *ArgumentSet) Summary(desc string)
func (*ArgumentSet) Uint64 ¶
func (argset *ArgumentSet) Uint64(name string, dst *uint64, desc string)
func (*ArgumentSet) Usage ¶
func (argset *ArgumentSet) Usage(desc string)
type Command ¶
type Command interface {
// Describe the command-line interface of the command.
Describe(*ArgumentSet)
// Run the command.
// A CommandSet only ever calls this after the arguments have been parsed.
Run(context.Context) error
}
A Command that can be added to a CommandSet.
This is intended for use in CLI applications that have multiple subcommands. If a program does not need that, an ArgumentSet is usually easier to use.
type CommandSet ¶
type CommandSet struct {
// contains filtered or unexported fields
}
A CommandSet is a multiplexer for a set of subcommands.
func (*CommandSet) Alias ¶
func (cmds *CommandSet) Alias(prefix, alias, aliasFor string)
Alias registers an alias for an already-registered Command.
A prefix is accepted to simplify registering aliases deep in the subcommand tree. The following call
cmds.Alias("notes", "", "list")
is shorthand for
cmds.Alias("", "notes", "notes list")
func (*CommandSet) Cmd ¶
func (cmds *CommandSet) Cmd(name string, cmd Command)
Cmd registers a new subcommand with the given name.
Command names can contain multiple parts separated by whitespace:
cmds.Cmd("notes list", notesList)
func (*CommandSet) Help ¶
func (cmds *CommandSet) Help() Command
func (*CommandSet) HelpWithExtraTopics ¶
func (cmds *CommandSet) HelpWithExtraTopics(extra map[string]string) Command
type TextValue ¶
type TextValue interface {
encoding.TextMarshaler
encoding.TextUnmarshaler
}