yscmd

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2021 License: MIT Imports: 20 Imported by: 1

Documentation

Index

Constants

View Source
const CMD_HELP = "help"
View Source
const CMD_SHELL = "shell"
View Source
const FLAG_CFG_FILE_LONG = "gf.gcfg.file"
View Source
const FLAG_DEBUG_LONG = "debug"
View Source
const FLAG_NO_LOGO_LONG = "no-logo"
View Source
const FLAG_NO_WAIT_LONG = "no-wait"
View Source
const INSTALL = "install"
View Source
const VERSION = "version"

Variables

This section is empty.

Functions

func DefaultHelp added in v0.2.0

func DefaultHelp(c *Command)

func DefaultRun added in v0.2.0

func DefaultRun(c *Command)

func GoDirFmt

func GoDirFmt(dir string)

func GoFileFmt

func GoFileFmt(path string, group *sync.WaitGroup)

func IsInstalled added in v0.2.0

func IsInstalled() bool

IsInstalled returns whether the binary is installed.

func ScanAndLog

func ScanAndLog(info ...interface{}) string

func ScanYesOrNo

func ScanYesOrNo(info ...interface{}) bool

func SetChildCommand added in v0.2.0

func SetChildCommand(parent ICommandBuilder, child ICommandBuilder) bool

func SetDefaultCommand added in v0.2.0

func SetDefaultCommand(parent ICommandBuilder)

func SetDefaultFlag added in v0.2.0

func SetDefaultFlag(cmd ICommandBuilder)

func SetFlag added in v0.2.0

func SetFlag(cmd ICommandBuilder, falg IFlagBuilder, group ...string) bool

Types

type App added in v0.2.0

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

func NewApp added in v0.2.0

func NewApp(root ICommandBuilder) App

func (App) Run added in v0.2.0

func (a App) Run()

type CmdHelpBuilder added in v0.2.0

type CmdHelpBuilder struct {
	CommandBuilderCore
}

func (*CmdHelpBuilder) Init added in v0.2.0

func (b *CmdHelpBuilder) Init()

func (*CmdHelpBuilder) SetChildCommand added in v0.2.0

func (b *CmdHelpBuilder) SetChildCommand(builder ICommandBuilder) bool

func (*CmdHelpBuilder) SetFlag added in v0.2.0

func (b *CmdHelpBuilder) SetFlag(builder IFlagBuilder, _ ...string) bool

type CmdInstallBuilder added in v0.2.0

type CmdInstallBuilder struct {
	CommandBuilderCore
}

func (*CmdInstallBuilder) Init added in v0.2.0

func (b *CmdInstallBuilder) Init()

func (*CmdInstallBuilder) SetChildCommand added in v0.2.0

func (b *CmdInstallBuilder) SetChildCommand(ICommandBuilder) bool

func (*CmdInstallBuilder) SetFlag added in v0.2.0

func (b *CmdInstallBuilder) SetFlag(IFlagBuilder, ...string) bool

type CmdShellBuilder added in v0.3.0

type CmdShellBuilder struct {
	CommandBuilderCore
	// contains filtered or unexported fields
}

func (*CmdShellBuilder) Init added in v0.3.0

func (b *CmdShellBuilder) Init()

func (*CmdShellBuilder) SetChildCommand added in v0.3.0

func (b *CmdShellBuilder) SetChildCommand(builder ICommandBuilder) bool

func (*CmdShellBuilder) SetFlag added in v0.3.0

func (b *CmdShellBuilder) SetFlag(builder IFlagBuilder, _ ...string) bool

type CmdVersionBuilder added in v0.2.0

type CmdVersionBuilder struct {
	CommandBuilderCore
}

func (*CmdVersionBuilder) Init added in v0.2.0

func (b *CmdVersionBuilder) Init()

func (*CmdVersionBuilder) SetChildCommand added in v0.2.0

func (b *CmdVersionBuilder) SetChildCommand(builder ICommandBuilder) bool

func (*CmdVersionBuilder) SetFlag added in v0.2.0

func (b *CmdVersionBuilder) SetFlag(builder IFlagBuilder, _ ...string) bool

type Command added in v0.2.0

type Command struct {
	Use     string // 命令名称
	Short   string // 命令短描述
	Long    string // 命令长描述
	Example string // 命令使用案例
	Note    string // 命令的详细说明

	Run  func(*Command)
	Help func(*Command)
	// contains filtered or unexported fields
}

func NewCommandWithDifaultFunc added in v0.2.0

func NewCommandWithDifaultFunc() *Command

func NewDefaultCommand added in v0.2.0

func NewDefaultCommand() *Command

func (*Command) AddCommand added in v0.2.0

func (c *Command) AddCommand(cmd *Command) bool

func (*Command) AddFlag added in v0.2.0

func (c *Command) AddFlag(f *Flag) bool

func (*Command) Exec added in v0.2.0

func (c *Command) Exec()

Exec 执行命令的 Run 函数

func (*Command) GetHelp added in v0.2.0

func (c *Command) GetHelp() string

GetHelp 使用模板创建默认的帮助命令

func (*Command) PrintHelp added in v0.2.0

func (c *Command) PrintHelp()

func (*Command) RunChildCmd added in v0.2.0

func (c *Command) RunChildCmd(cmdUse string)

RunChildCmd 运行子命令,<cmdUse> 表示字命令的字符. 当 <cmdUse> 为空时, 判断命令是否可以执行shell 可以则执行 当 <cmdUse> 不存在时, 显示当前命令的帮助信息 <cmdUse> 直接执行

func (*Command) ShowHelp added in v0.2.0

func (c *Command) ShowHelp()

type CommandBuilderCore added in v0.2.0

type CommandBuilderCore struct {
	C *Command
}

func (*CommandBuilderCore) Command added in v0.2.0

func (b *CommandBuilderCore) Command() *Command

func (*CommandBuilderCore) Init added in v0.2.0

func (b *CommandBuilderCore) Init()

func (*CommandBuilderCore) SetChildCommand added in v0.2.0

func (b *CommandBuilderCore) SetChildCommand(builder ICommandBuilder) bool

func (*CommandBuilderCore) SetChildCommands added in v0.2.0

func (b *CommandBuilderCore) SetChildCommands(builders ...ICommandBuilder)

func (*CommandBuilderCore) SetFlag added in v0.2.0

func (b *CommandBuilderCore) SetFlag(builder IFlagBuilder, group ...string) bool

func (*CommandBuilderCore) SetFlags added in v0.2.0

func (b *CommandBuilderCore) SetFlags(builders ...IFlagBuilder)

type Flag added in v0.2.0

type Flag struct {
	Short          string      // 选项 短
	Long           string      // 选择 长
	DefaultValue   interface{} // 带参数时的参数名
	Description    string      // 描述信息
	ConfigNodeName string      // 配置文件节点名
	Group          string      // 配置节点中的分组, 更多的区分同一种配置参数, 还是尽量配置参数不一样
}

func FlagCfgFile added in v0.2.0

func FlagCfgFile() *Flag

func FlagDebug added in v0.2.0

func FlagDebug() *Flag
func FlagNoLogo() *Flag

func FlagNoWait added in v0.2.0

func FlagNoWait() *Flag

func NewDefaultFlag added in v0.2.0

func NewDefaultFlag(group ...string) *Flag

func (*Flag) ConfigKey added in v0.3.0

func (f *Flag) ConfigKey() string

ConfigKey 获取当前 Config 的配置项名称, 此名称应该在软件内唯一 此参数也用于 Command.AddFlag 中存储 Flag 使用

func (*Flag) DefaultCfg added in v0.3.0

func (f *Flag) DefaultCfg() g.MapStrAny

func (*Flag) Get added in v0.2.0

func (f *Flag) Get() string

Get 按照 全配置名称 -> 长参数 -> 短参数 -> [长参数不空]配置文件 -> 环境变量 的顺序读取

func (*Flag) GetVar added in v0.2.0

func (f *Flag) GetVar() *g.Var

GetVar 获取一个可以随意转换的数据

func (*Flag) Has added in v0.2.0

func (f *Flag) Has() bool

Has 按照 命令行,配置文件,环境变量的顺序读取

func (*Flag) HasCfg added in v0.2.0

func (f *Flag) HasCfg() bool

HasCfg 配置文件是否存在

func (*Flag) HasCmd added in v0.2.0

func (f *Flag) HasCmd() bool

HasCmd 命令行是否存在

func (*Flag) HasEnv added in v0.2.0

func (f *Flag) HasEnv() bool

HasEnv 环境变量是否存在

func (*Flag) LongKey added in v0.3.0

func (f *Flag) LongKey() string

func (*Flag) ShortKey added in v0.3.0

func (f *Flag) ShortKey() string

type FlagBuilderCore added in v0.2.0

type FlagBuilderCore struct {
	F *Flag
}

func (*FlagBuilderCore) Flag added in v0.2.0

func (f *FlagBuilderCore) Flag() *Flag

type FlagCfgFileBuilder added in v0.2.0

type FlagCfgFileBuilder struct {
	FlagBuilderCore
}

func (*FlagCfgFileBuilder) Init added in v0.2.0

func (f *FlagCfgFileBuilder) Init(...string)

type FlagDebugBuilder added in v0.2.0

type FlagDebugBuilder struct {
	FlagBuilderCore
}

func (*FlagDebugBuilder) Init added in v0.2.0

func (f *FlagDebugBuilder) Init(...string)

type FlagNoLogoBuilder added in v0.2.0

type FlagNoLogoBuilder struct {
	FlagBuilderCore
}

func (*FlagNoLogoBuilder) Init added in v0.2.0

func (f *FlagNoLogoBuilder) Init(...string)

type FlagNoWaitBuilder added in v0.2.0

type FlagNoWaitBuilder struct {
	FlagBuilderCore
}

func (*FlagNoWaitBuilder) Init added in v0.2.0

func (f *FlagNoWaitBuilder) Init(...string)

type ICommandBuilder added in v0.2.0

type ICommandBuilder interface {
	// Init 初始化命令
	Init()

	// Command 获取此命令
	Command() *Command

	// SetChildCommand 利用 builder 设置子命令
	SetChildCommand(builder ICommandBuilder) bool

	// SetFlag 设置 Flag 标签
	SetFlag(IFlagBuilder, ...string) bool
}

type IFlagBuilder added in v0.2.0

type IFlagBuilder interface {
	// Init 初始化命令
	Init(...string)

	// Flag 获取此
	Flag() *Flag
}

Jump to

Keyboard shortcuts

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