cli

package
v0.9.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2018 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package cli provides quick start framework for command line application.

The main features of Hiboot cli application are

* Dependency Injection * Struct Tag for dependency injection * Sub command handler

Index

Constants

View Source
const (
	// RootCommandName the instance name of cli.rootCommand
	RootCommandName = "cli.rootCommand"
)

Variables

View Source
var ErrCommandHandlerNotFound = errors.New("command handler not found")

ErrCommandHandlerNotFound the error message for 'command handler not found'

View Source
var ErrCommandNotFound = errors.New("command not found")

ErrCommandNotFound command not found error

Functions

func Dispatch added in v0.9.0

func Dispatch(c Command, args []string) (retVal interface{}, err error)

Dispatch method with OnAction prefix

func Register

func Register(c Command)

Register register

Types

type Application

type Application interface {
	app.Application
	Root() Command
	SetRoot(root Command)
}

Application cli application interface

func NewApplication

func NewApplication(cmd ...interface{}) Application

NewApplication create new cli application

type Command

type Command interface {
	// EmbeddedCommand return the embedded command
	EmbeddedCommand() *cobra.Command
	// Add add a new command
	Add(commands ...Command) Command
	// HasChild check if it has child
	HasChild() bool
	// Children get children
	Children() []Command
	// Exec execute the command
	Exec() error
	// GetName get the command name
	GetName() string
	// FullName get the command full name
	FullName() string
	// SetName set the command name
	SetName(name string) Command
	// SetFullName set the command full name
	SetFullName(name string) Command
	// Parent get parent command
	Parent() Command
	// SetParent set parent command
	SetParent(p Command) Command
	// Run the callback of command, once the command is received, this method will be called
	Run(args []string) error
	// Find find child command
	Find(name string) (Command, error)
	// SetOutput set output, type: io.Writer
	SetOutput(output io.Writer)
	// SetArgs set args
	SetArgs(a []string)
	// ExecuteC execute command
	ExecuteC() (cmd *cobra.Command, err error)
	// PersistentFlags get persistent flags
	PersistentFlags() *flag.FlagSet
}

Command the command interface for cli application

type CommandNameValue

type CommandNameValue struct {
	Name    string
	Command interface{}
}

CommandNameValue is the command name value pair

type RootCommand added in v0.9.6

type RootCommand struct {
	at.Qualifier `name:"cli.rootCommand"`
	// contains filtered or unexported fields
}

RootCommand root command qualifier

func (*RootCommand) Add added in v0.9.6

func (c *RootCommand) Add(commands ...Command) Command

Add added child command

func (*RootCommand) Children added in v0.9.6

func (c *RootCommand) Children() []Command

Children get children

func (*RootCommand) EmbeddedCommand added in v0.9.6

func (c *RootCommand) EmbeddedCommand() *cobra.Command

EmbeddedCommand get embedded command

func (*RootCommand) Exec added in v0.9.6

func (c *RootCommand) Exec() error

Exec exec method

func (*RootCommand) Find added in v0.9.6

func (c *RootCommand) Find(name string) (Command, error)

Find find child command

func (*RootCommand) FullName added in v0.9.6

func (c *RootCommand) FullName() string

FullName get command full name

func (*RootCommand) GetName added in v0.9.6

func (c *RootCommand) GetName() string

GetName get command name

func (*RootCommand) HasChild added in v0.9.6

func (c *RootCommand) HasChild() bool

HasChild check whether it has child or not

func (*RootCommand) Parent added in v0.9.6

func (c *RootCommand) Parent() Command

Parent get parent command

func (*RootCommand) Run added in v0.9.6

func (c *RootCommand) Run(args []string) error

Run method

func (*RootCommand) SetFullName added in v0.9.6

func (c *RootCommand) SetFullName(name string) Command

SetFullName set command full name

func (*RootCommand) SetName added in v0.9.6

func (c *RootCommand) SetName(name string) Command

SetName set command name

func (*RootCommand) SetParent added in v0.9.6

func (c *RootCommand) SetParent(p Command) Command

SetParent set parent command

type SubCommand added in v0.9.6

type SubCommand struct {
	// contains filtered or unexported fields
}

SubCommand sub command qualifier

func (*SubCommand) Add added in v0.9.6

func (c *SubCommand) Add(commands ...Command) Command

Add added child command

func (*SubCommand) Children added in v0.9.6

func (c *SubCommand) Children() []Command

Children get children

func (*SubCommand) EmbeddedCommand added in v0.9.6

func (c *SubCommand) EmbeddedCommand() *cobra.Command

EmbeddedCommand get embedded command

func (*SubCommand) Exec added in v0.9.6

func (c *SubCommand) Exec() error

Exec exec method

func (*SubCommand) Find added in v0.9.6

func (c *SubCommand) Find(name string) (Command, error)

Find find child command

func (*SubCommand) FullName added in v0.9.6

func (c *SubCommand) FullName() string

FullName get command full name

func (*SubCommand) GetName added in v0.9.6

func (c *SubCommand) GetName() string

GetName get command name

func (*SubCommand) HasChild added in v0.9.6

func (c *SubCommand) HasChild() bool

HasChild check whether it has child or not

func (*SubCommand) Parent added in v0.9.6

func (c *SubCommand) Parent() Command

Parent get parent command

func (*SubCommand) Run added in v0.9.6

func (c *SubCommand) Run(args []string) error

Run method

func (*SubCommand) SetFullName added in v0.9.6

func (c *SubCommand) SetFullName(name string) Command

SetFullName set command full name

func (*SubCommand) SetName added in v0.9.6

func (c *SubCommand) SetName(name string) Command

SetName set command name

func (*SubCommand) SetParent added in v0.9.6

func (c *SubCommand) SetParent(p Command) Command

SetParent set parent command

type TestApplication

type TestApplication interface {
	Application
	RunTest(args ...string) (output string, err error)
}

TestApplication the interface of cli test application

func NewTestApplication

func NewTestApplication(t *testing.T, cmd ...interface{}) TestApplication

NewTestApplication is the test application constructor

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL