cmdopt

package module
v0.7.3 Latest Latest
Warning

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

Go to latest
Published: Aug 13, 2022 License: MIT Imports: 7 Imported by: 8

README

cmdopt Go license codecov PkgGoDev Go version

cmdopt 命令行选项的增强,可以轻松处理子命令。高度重用 flag 包。

opt := &cmdopt.CmdOpt{}

// 子命令 build,为一个 flag.FlagSet 实例
build := opt.New("build", func(output io.Writer)error{
    output.Write([]byte("build"))
})

// 子命令 install
install := opt.New("install", func(output io.Writer)error{
    output.Write([]byte("install"))
})

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。

Documentation

Overview

Package cmdopt 用于创建子命令功能的命令行

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CmdOpt

type CmdOpt struct {
	// 表示输出的通道
	//
	// 此值必须指定;
	Output io.Writer

	// 表示出错时的处理方式
	//
	// 该值最终会被传递给子命令; 为空则采用 flag.ContinueOnError
	ErrorHandling flag.ErrorHandling

	// Header、Footer、OptionsTitle 和 CommandsTitle 作为输出帮助信息中的部分内容
	//
	// 帮助信息的模板如下:
	//  {Header}
	//  {CommandsTitle}:
	//      cmd1    cmd1 usage
	//      cmd2    cmd2 usage
	//  {Footer}
	//
	// 子命令的帮助信息模板如下:
	//  usage
	//  {OptionsTitle}:
	//      -flag1    flag1 usage
	//      -flag2    flag2 usage
	Header        string
	Footer        string
	CommandsTitle string
	OptionsTitle  string

	// 在找不到子命令时显示的额外信息
	//
	// 其中参数为子命令的名称。
	NotFound func(string) string
	// contains filtered or unexported fields
}

CmdOpt 带子命令的命令行操作

func (*CmdOpt) Commands

func (opt *CmdOpt) Commands() []string

Commands 所有的子命令列表

func (*CmdOpt) Exec

func (opt *CmdOpt) Exec(args []string) error

Exec 执行命令行程序

args 第一个元素应该是子命令名称。

func (*CmdOpt) Help

func (opt *CmdOpt) Help(name, usage string)

Help 注册 help 子命令

func (*CmdOpt) New

func (opt *CmdOpt) New(name, usage string, do DoFunc) *flag.FlagSet

New 注册一条新的子命令

name 为子命令的名称,必须唯一; do 为该条子命令执行的函数体; usage 为该条子命令的帮助内容输出,当 usage 为多行是,其第一行作为此命令的摘要信息。

返回 FlagSet,不需要手动调用 FlagSet.Parse,该方法会在执行时自动执行。 FlagSet.Args 返回的是包含了子命令在内容的所有内容。

type DoFunc

type DoFunc func(io.Writer) error

DoFunc 子命令的执行函数

Jump to

Keyboard shortcuts

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