cmdopt

package module
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2020 License: MIT Imports: 6 Imported by: 8

README

cmdopt Build Status Build Status license codecov

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

opt := cmdopt.New(...)

// 子命令 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"))
})

文档

Go Walker go.dev reference

版权

本项目采用 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 {
	// contains filtered or unexported fields
}

CmdOpt 带子命令的命令行操作

func New

func New(
	output io.Writer,
	errHandling flag.ErrorHandling,
	header, footer, options, commands string,
	notFound func(string) string,
) *CmdOpt

New 声明 CmdOpt 对象

output 表示输出的通道; errHandling 表示出错时的处理方式,该值最终会被传递给子命令; notFound 在找不到子命令时显示的额外信息; header、footer、options 和 commands 作为输出帮助信息中的部分内容, 由用户给出。 帮助信息的模板如下:

{header}
{commands}:
    cmd1    cmd1 usage
    cmd2    cmd2 usage
{footer}

子命令的帮助信息模板如下:

{usage}
{options}:
    -flag1    flag1 usage
    -flag2    flag2 usage

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 为 nil,则采用自带的内容,也可以通过返回值再次指定。

返回 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