cli

package
v0.1.0-beta.1 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoField             = errors.New("no field")
	ErrNotSupportFieldType = errors.New("not support field type")
)

Functions

func AnalyseTemplate

func AnalyseTemplate(tag I18nTag, data any) string

func Ext_Max

func Ext_Max(l, r int) int

func Ext_StringTo

func Ext_StringTo(value string) string

func Ext_StringToValue

func Ext_StringToValue(value string, kind reflect.Kind) (reflect.Value, error)

func Ext_TypeIsArray

func Ext_TypeIsArray(t reflect.Type) bool

func Ext_TypeIsStruct

func Ext_TypeIsStruct(t reflect.Type) bool

func NewInnerCommand

func NewInnerCommand(cmd Command) *innerCommand

func UseEN

func UseEN()

Types

type AddCommandOption

type AddCommandOption func(CommandSettor)

type App

type App interface {
	Run(args []string) error
}

type AppBuilder

type AppBuilder interface {
	SetVersion(version string) AppBuilder
	SetUsage(usage string) AppBuilder
	AddCommand(Command, ...AddCommandOption) AppBuilder
	Build() App
}

func NewBuilder

func NewBuilder(name string) AppBuilder

type BaseCommand

type BaseCommand struct {
	DefaultFlags any
	Meta         *CommandMeta
}

func (*BaseCommand) GetDefaultFlags

func (cmd *BaseCommand) GetDefaultFlags() any

func (*BaseCommand) GetDescripton

func (cmd *BaseCommand) GetDescripton() *CommandMeta

type Command

type Command interface {
	GetDescripton() *CommandMeta
	GetDefaultFlags() any
	Action(c *Context) error
}

type CommandMeta

type CommandMeta struct {
	Name    string
	Usage   string
	Aliases []string
}

type CommandSettor

type CommandSettor interface {
	AddSucCommand(Command, ...AddCommandOption)
}

type Context

type Context struct {
	WorkDir      string
	CommandPaths []string
	UserSetFlags UserSetFlags
	Stdout       Stdout

	Value any
	// contains filtered or unexported fields
}

type Flag

type Flag struct {
	FieldName string
	Name      string
	Aliases   []string
	Default   any
	Require   bool
	Multiple  bool
	Usage     string
}

type GlobalFlag

type GlobalFlag struct {
	*Flag
	Action PipelineAction
}

type HelpCommand

type HelpCommand struct {
	*BaseCommand
	// contains filtered or unexported fields
}

func (*HelpCommand) Action

func (cmd *HelpCommand) Action(c *Context) error

type I18nTag

type I18nTag string
var (
	I18n = map[I18nTag]string{}

	Tag_Default I18nTag = "default"

	Tag_OutputCmdHelp    I18nTag = "output_cmd_help"
	Tag_OutputSubCmdHelp I18nTag = "output_sub_cmd_help"

	Tag_OutputVersion I18nTag = "output_version"

	Tag_HelpDescription    I18nTag = "help_description"
	Tag_VersionDescription I18nTag = "version_description"
)

type PipelineAction

type PipelineAction func(*Context) error

type Stdout

type Stdout interface {
	Scope(word string) Stdout

	NewLline() Stdout

	Printf(format string, a ...any) Stdout
	Print(a ...any) Stdout

	Printfln(format string, a ...any) Stdout
	Println(a ...any) Stdout
}

type TempData_Meta

type TempData_Meta struct {
	Name    string
	Usage   string
	Default string
}

type TempData_OutputCmdHelp

type TempData_OutputCmdHelp struct {
	Description       string
	CmdPath           string
	Flags             []*TempData_Meta
	SupportGlobalFlag bool
	GlobalFlags       []*TempData_Meta
}

type TempData_OutputSubCmdHelp

type TempData_OutputSubCmdHelp struct {
	Description       string
	CmdPath           string
	SubCommands       []*TempData_Meta
	SupportGlobalFlag bool
	GlobalFlags       []*TempData_Meta
}

type TempData_Version

type TempData_Version struct {
	Version string
}

type UserSetFlags

type UserSetFlags map[string][]string

func (UserSetFlags) Range

func (usfs UserSetFlags) Range(handler func(string, string))

func (UserSetFlags) Set

func (usfs UserSetFlags) Set(key string, value string)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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