Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
9ca0be36
提交
9ca0be36
authored
10月 18, 2015
作者:
Juan Benet
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1852 from ipfs/rht-commands-flags
Make `ipfs commands --flags` option
上级
83451ed3
1bb6a63b
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
35 行增加
和
7 行删除
+35
-7
commands.go
core/commands/commands.go
+35
-7
没有找到文件。
core/commands/commands.go
浏览文件 @
9ca0be36
...
...
@@ -11,6 +11,7 @@ import (
"bytes"
"io"
"sort"
"strings"
cmds
"github.com/ipfs/go-ipfs/commands"
)
...
...
@@ -18,8 +19,14 @@ import (
type
Command
struct
{
Name
string
Subcommands
[]
Command
Options
[]
cmds
.
Option
ShowOptions
bool
}
const
(
flagsOptionName
=
"flags"
)
// CommandsCmd takes in a root command,
// and returns a command that lists the subcommands in that root
func
CommandsCmd
(
root
*
cmds
.
Command
)
*
cmds
.
Command
{
...
...
@@ -28,10 +35,13 @@ func CommandsCmd(root *cmds.Command) *cmds.Command {
Tagline
:
"List all available commands."
,
ShortDescription
:
`Lists all available commands (and subcommands) and exits.`
,
},
Options
:
[]
cmds
.
Option
{
cmds
.
BoolOption
(
flagsOptionName
,
"f"
,
"Show command flags"
),
},
Run
:
func
(
req
cmds
.
Request
,
res
cmds
.
Response
)
{
root
:=
cmd2outputCmd
(
"ipfs"
,
root
)
res
.
SetOutput
(
&
root
)
showOptions
,
_
,
_
:=
req
.
Option
(
flagsOptionName
)
.
Bool
()
rootCmd
:=
cmd2outputCmd
(
"ipfs"
,
root
,
showOptions
)
res
.
SetOutput
(
&
rootCmd
)
},
Marshalers
:
cmds
.
MarshalerMap
{
cmds
.
Text
:
func
(
res
cmds
.
Response
)
(
io
.
Reader
,
error
)
{
...
...
@@ -47,15 +57,17 @@ func CommandsCmd(root *cmds.Command) *cmds.Command {
}
}
func
cmd2outputCmd
(
name
string
,
cmd
*
cmds
.
Command
)
Command
{
func
cmd2outputCmd
(
name
string
,
cmd
*
cmds
.
Command
,
showOptions
bool
)
Command
{
output
:=
Command
{
Name
:
name
,
Subcommands
:
make
([]
Command
,
len
(
cmd
.
Subcommands
)),
Options
:
cmd
.
Options
,
ShowOptions
:
showOptions
,
}
i
:=
0
for
name
,
sub
:=
range
cmd
.
Subcommands
{
output
.
Subcommands
[
i
]
=
cmd2outputCmd
(
name
,
sub
)
output
.
Subcommands
[
i
]
=
cmd2outputCmd
(
name
,
sub
,
showOptions
)
i
++
}
...
...
@@ -67,9 +79,25 @@ func cmdPathStrings(cmd *Command) []string {
var
recurse
func
(
prefix
string
,
cmd
*
Command
)
recurse
=
func
(
prefix
string
,
cmd
*
Command
)
{
cmds
=
append
(
cmds
,
prefix
+
cmd
.
Name
)
newPrefix
:=
prefix
+
cmd
.
Name
cmds
=
append
(
cmds
,
newPrefix
)
if
prefix
!=
""
&&
cmd
.
ShowOptions
{
for
_
,
option
:=
range
cmd
.
Options
{
names
:=
option
.
Names
()
var
cmdOpts
[]
string
for
_
,
flag
:=
range
names
{
if
len
(
flag
)
==
1
{
flag
=
"-"
+
flag
}
else
{
flag
=
"--"
+
flag
}
cmdOpts
=
append
(
cmdOpts
,
newPrefix
+
" "
+
flag
)
}
cmds
=
append
(
cmds
,
strings
.
Join
(
cmdOpts
,
" / "
))
}
}
for
_
,
sub
:=
range
cmd
.
Subcommands
{
recurse
(
prefix
+
cmd
.
Name
+
" "
,
&
sub
)
recurse
(
newPrefix
+
" "
,
&
sub
)
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论