hiboot: hidevops.io/hiboot/pkg/app/cli Index | Files

package cli

import "hidevops.io/hiboot/pkg/app/cli"

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

Package Files

application.go command.go doc.go properties.go testapplication.go

Constants

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

Variables

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

ErrCommandHandlerNotFound the error message for 'command handler not found'

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

ErrCommandNotFound command not found error

func Dispatch Uses

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

Dispatch method with OnAction prefix

func Register Uses

func Register(c Command)

Register register

type Application Uses

type Application interface {
    app.Application
}

Application cli application interface

func NewApplication Uses

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

NewApplication create new cli application

type Command Uses

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() *pflag.FlagSet
}

Command the command interface for cli application

type CommandNameValue Uses

type CommandNameValue struct {
    Name    string
    Command interface{}
}

CommandNameValue is the command name value pair

type RootCommand Uses

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

RootCommand root command qualifier

func (*RootCommand) Add Uses

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

Add added child command

func (*RootCommand) Children Uses

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

Children get children

func (*RootCommand) EmbeddedCommand Uses

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

EmbeddedCommand get embedded command

func (*RootCommand) Exec Uses

func (c *RootCommand) Exec() error

Exec exec method

func (*RootCommand) Find Uses

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

Find find child command

func (*RootCommand) FullName Uses

func (c *RootCommand) FullName() string

FullName get command full name

func (*RootCommand) GetName Uses

func (c *RootCommand) GetName() string

GetName get command name

func (*RootCommand) HasChild Uses

func (c *RootCommand) HasChild() bool

HasChild check whether it has child or not

func (*RootCommand) Parent Uses

func (c *RootCommand) Parent() Command

Parent get parent command

func (*RootCommand) Run Uses

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

Run method

func (*RootCommand) SetFullName Uses

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

SetFullName set command full name

func (*RootCommand) SetName Uses

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

SetName set command name

func (*RootCommand) SetParent Uses

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

SetParent set parent command

type SubCommand Uses

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

SubCommand sub command qualifier

func (*SubCommand) Add Uses

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

Add added child command

func (*SubCommand) Children Uses

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

Children get children

func (*SubCommand) EmbeddedCommand Uses

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

EmbeddedCommand get embedded command

func (*SubCommand) Exec Uses

func (c *SubCommand) Exec() error

Exec exec method

func (*SubCommand) Find Uses

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

Find find child command

func (*SubCommand) FullName Uses

func (c *SubCommand) FullName() string

FullName get command full name

func (*SubCommand) GetName Uses

func (c *SubCommand) GetName() string

GetName get command name

func (*SubCommand) HasChild Uses

func (c *SubCommand) HasChild() bool

HasChild check whether it has child or not

func (*SubCommand) Parent Uses

func (c *SubCommand) Parent() Command

Parent get parent command

func (*SubCommand) Run Uses

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

Run method

func (*SubCommand) SetFullName Uses

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

SetFullName set command full name

func (*SubCommand) SetName Uses

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

SetName set command name

func (*SubCommand) SetParent Uses

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

SetParent set parent command

type TestApplication Uses

type TestApplication interface {
    Initialize() error
    SetProperty(name string, value ...interface{}) TestApplication
    Run(args ...string) (output string, err error)
}

TestApplication the interface of cli test application

func NewTestApplication Uses

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

NewTestApplication is the test application constructor

Package cli imports 15 packages (graph). Updated 2019-10-06. Refresh now. Tools for package owners.