Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
fc7c199d
提交
fc7c199d
authored
11月 12, 2014
作者:
Juan Batiz-Benet
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
cmds/helptext: indent + newlines + synopsis
上级
3c9fb486
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
59 行增加
和
15 行删除
+59
-15
helptext.go
commands/cli/helptext.go
+58
-15
command.go
commands/command.go
+1
-0
没有找到文件。
commands/cli/helptext.go
浏览文件 @
fc7c199d
...
...
@@ -29,10 +29,46 @@ type helpFields struct {
Tagline
string
Arguments
string
Options
string
Synopsis
string
Subcommands
string
Description
string
}
// TrimNewlines removes extra newlines from fields. This makes aligning
// commands easier. Below, the leading + tralining newlines are removed:
// Synopsis: `
// ipfs config <key> - Get value of <key>
// ipfs config <key> <value> - Set value of <key> to <value>
// ipfs config --show - Show config file
// ipfs config --edit - Edit config file in $EDITOR
// `
func
(
f
*
helpFields
)
TrimNewlines
()
{
f
.
Path
=
strings
.
Trim
(
f
.
Path
,
"
\n
"
)
f
.
ArgUsage
=
strings
.
Trim
(
f
.
ArgUsage
,
"
\n
"
)
f
.
Tagline
=
strings
.
Trim
(
f
.
Tagline
,
"
\n
"
)
f
.
Arguments
=
strings
.
Trim
(
f
.
Arguments
,
"
\n
"
)
f
.
Options
=
strings
.
Trim
(
f
.
Options
,
"
\n
"
)
f
.
Synopsis
=
strings
.
Trim
(
f
.
Synopsis
,
"
\n
"
)
f
.
Subcommands
=
strings
.
Trim
(
f
.
Subcommands
,
"
\n
"
)
f
.
Description
=
strings
.
Trim
(
f
.
Description
,
"
\n
"
)
}
// Indent adds whitespace the lines of fields.
func
(
f
*
helpFields
)
IndentAll
()
{
indent
:=
func
(
s
string
)
string
{
if
s
==
""
{
return
s
}
return
indentString
(
s
,
indentStr
)
}
f
.
Arguments
=
indent
(
f
.
Arguments
)
f
.
Options
=
indent
(
f
.
Options
)
f
.
Synopsis
=
indent
(
f
.
Synopsis
)
f
.
Subcommands
=
indent
(
f
.
Subcommands
)
f
.
Description
=
indent
(
f
.
Description
)
}
const
usageFormat
=
"{{if .Usage}}{{.Usage}}{{else}}{{.Path}}{{if .ArgUsage}} {{.ArgUsage}}{{end}} - {{.Tagline}}{{end}}"
const
longHelpFormat
=
`
...
...
@@ -40,29 +76,31 @@ const longHelpFormat = `
{{if .Arguments}}ARGUMENTS:
{{.
Indent}}{{.
Arguments}}
{{.Arguments}}
{{end}}{{if .Options}}OPTIONS:
{{.
Indent}}{{.
Options}}
{{.Options}}
{{end}}{{if .Subcommands}}SUBCOMMANDS:
{{.
Indent}}{{.
Subcommands}}
{{.Subcommands}}
{{.Indent}}Use '{{.Path}} <subcmd> --help' for more information about each command.
{{end}}{{if .Description}}DESCRIPTION:
{{.
Indent}}{{.
Description}}
{{.Description}}
{{end}}
`
const
shortHelpFormat
=
`USAGE:
{{.Indent}}{{template "usage" .}}
{{if .Description}}
{{.Indent}}{{.Description}}
{{if .Synopsis}}
{{.Synopsis}}
{{end}}{{if .Description}}
{{.Description}}
{{end}}
Use '{{.Path}} --help' for more information about this command.
`
...
...
@@ -111,6 +149,7 @@ func LongHelp(rootName string, root *cmds.Command, path []string, out io.Writer)
Tagline
:
cmd
.
Description
,
Arguments
:
cmd
.
ArgumentHelp
,
Options
:
cmd
.
OptionHelp
,
Synopsis
:
cmd
.
Helptext
.
Synopsis
,
Subcommands
:
cmd
.
SubcommandHelp
,
Description
:
cmd
.
Help
,
}
...
...
@@ -137,10 +176,11 @@ func LongHelp(rootName string, root *cmds.Command, path []string, out io.Writer)
fields
.
Subcommands
=
strings
.
Join
(
subcommandText
(
cmd
,
rootName
,
path
),
"
\n
"
)
}
fields
.
Arguments
=
indentString
(
fields
.
Arguments
,
indentStr
)
fields
.
Options
=
indentString
(
fields
.
Options
,
indentStr
)
fields
.
Subcommands
=
indentString
(
fields
.
Subcommands
,
indentStr
)
fields
.
Description
=
indentString
(
fields
.
Description
,
indentStr
)
// trim the extra newlines (see TrimNewlines doc)
fields
.
TrimNewlines
()
// indent all fields that have been set
fields
.
IndentAll
()
return
longHelpTemplate
.
Execute
(
out
,
fields
)
}
...
...
@@ -162,6 +202,7 @@ func ShortHelp(rootName string, root *cmds.Command, path []string, out io.Writer
Path
:
pathStr
,
ArgUsage
:
usageText
(
cmd
),
Tagline
:
cmd
.
Description
,
Synopsis
:
cmd
.
Helptext
.
Synopsis
,
Description
:
cmd
.
Help
,
}
...
...
@@ -178,16 +219,18 @@ func ShortHelp(rootName string, root *cmds.Command, path []string, out io.Writer
if
len
(
cmd
.
Helptext
.
Subcommands
)
>
0
{
fields
.
Subcommands
=
cmd
.
Helptext
.
Subcommands
}
if
len
(
cmd
.
Helptext
.
LongDescription
)
>
0
{
fields
.
Description
=
cmd
.
Helptext
.
LongDescription
}
else
if
len
(
cmd
.
Helptext
.
ShortDescription
)
>
0
{
if
len
(
cmd
.
Helptext
.
ShortDescription
)
>
0
{
fields
.
Description
=
cmd
.
Helptext
.
ShortDescription
}
if
len
(
cmd
.
Helptext
.
Usage
)
>
0
{
fields
.
Usage
=
cmd
.
Helptext
.
Subcommands
}
fields
.
Description
=
indentString
(
fields
.
Description
,
indentStr
)
// trim the extra newlines (see TrimNewlines doc)
fields
.
TrimNewlines
()
// indent all fields that have been set
fields
.
IndentAll
()
return
shortHelpTemplate
.
Execute
(
out
,
fields
)
}
...
...
@@ -330,5 +373,5 @@ func indent(lines []string, prefix string) []string {
}
func
indentString
(
line
string
,
prefix
string
)
string
{
return
strings
.
Replace
(
line
,
"
\n
"
,
"
\n
"
+
prefix
,
-
1
)
return
prefix
+
strings
.
Replace
(
line
,
"
\n
"
,
"
\n
"
+
prefix
,
-
1
)
}
commands/command.go
浏览文件 @
fc7c199d
...
...
@@ -25,6 +25,7 @@ type HelpText struct {
// required
Tagline
string
// used in <cmd usage>
ShortDescription
string
// used in DESCRIPTION
Synopsis
string
// showcasing the cmd
// optional - whole section overrides
Usage
string
// overrides USAGE section
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论