hzDocs
hzDocs
文章 / 文档hedzr.com首页

cmdr series

介绍 cmdr

Guide

你的首个 CLI app更适合工程实践的版本
循序渐进
基本概念
命令命令:执行外部程序命令:预设参数命令:重定向命令:动态命令清单命令:在配置文件中定义别名清单命令:事件响应函数标志标志:必须项标志:可翻转组标志:枚举值标志:`Head -1` 风格标志:调用外部工具获得输入标志:自动否定标志:加号 `+` 前缀标志:事件响应函数解析结果内建命令和标志帮助子系统可共享共存的 app 实例辨析顶级函数WithOptsBackstage
如何……
Auto-close the ClosersRead config into structUsing is DetectorsUsing Store

References

What's New
Packages

Others

Examples
Blueprint
产品发布
产品发布之前
介绍 cmdr-cxx

Guide

cmdr supports

Intro

Guide

More features

References

Others

evendeep(-go)

Guide

Usagesdeepcopydeepdiffdeepequal
logg/slog(-go)

Guide

Guide

others

Components
trie-cxx

Guide

Guide

links

On Github

标志:加号 `+` 前缀

可识别的加号前缀

+ShortFlag 模式

当用户输入 +Flag 时,cmdr 将其视为 -ShortFlag 和 --LongFlag 的变体。

例如一个标志定义如下:

b.Flg("warning", "w").
	Description("negatable flag: <code>--no-warning</code> is available", "").
	Group("Negatable").
	LeadingPlusSign(true). // allow `+w` parsed ok
	Default(false).
	Build()

那么 -w +w --warning 都是合法有效的命令行输入。

一旦 +w 被成功识别,那么相应的 (*Flag).LeadingPlusSign() bool 将会为 true。 此时你的 OnAction 响应函数可以通过取得该标志值来调整自己的应用逻辑。

		OnAction(func(ctx context.Context, cmd cli.Cmd, args []string) (err error) {
			wf := cmd.FlagBy("warning")
			if wf != nil && wf.LeadingPlusSign() {
				println("warning flag with leading plus sign: +w FOUND.")
			}
			return
		}).
		Build()

运行时

上面的示例程序的运行时效果如同这样:

$ go run ./examples/leading-plus +w
warning flag with leading plus sign: +w FOUND.
$

用途

LeadingPlusSign 被 cmdr 识别,但并不预设其含义。

它的实际用途由你在编码 OnAction 和实现业务逻辑时被最终定义。

额外的话题

Required

Toggle Group

Valid Args

Head Like

External Tool

Plus Sign

Event Handlers

What is Next?

Components

Components

On Github

How is this guide?

最后更新于

目录

+ShortFlag 模式
运行时
用途
额外的话题