Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
07aae19e
Commit
07aae19e
authored
May 25, 2017
by
Péter Szilágyi
Committed by
GitHub
May 25, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #14446 from bas-vk/cli-help
Rewrite templates for (sub)commands help section
parents
b596b4ba
a346aedb
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
70 additions
and
12 deletions
+70
-12
consolecmd.go
cmd/geth/consolecmd.go
+0
-2
usage.go
cmd/geth/usage.go
+56
-0
flags.go
cmd/utils/flags.go
+14
-10
No files found.
cmd/geth/consolecmd.go
View file @
07aae19e
...
@@ -30,9 +30,7 @@ import (
...
@@ -30,9 +30,7 @@ import (
var
(
var
(
consoleFlags
=
[]
cli
.
Flag
{
utils
.
JSpathFlag
,
utils
.
ExecFlag
,
utils
.
PreloadJSFlag
}
consoleFlags
=
[]
cli
.
Flag
{
utils
.
JSpathFlag
,
utils
.
ExecFlag
,
utils
.
PreloadJSFlag
}
)
var
(
consoleCommand
=
cli
.
Command
{
consoleCommand
=
cli
.
Command
{
Action
:
utils
.
MigrateFlags
(
localConsole
),
Action
:
utils
.
MigrateFlags
(
localConsole
),
Name
:
"console"
,
Name
:
"console"
,
...
...
cmd/geth/usage.go
View file @
07aae19e
...
@@ -20,6 +20,7 @@ package main
...
@@ -20,6 +20,7 @@ package main
import
(
import
(
"io"
"io"
"sort"
"github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/internal/debug"
"github.com/ethereum/go-ethereum/internal/debug"
...
@@ -189,6 +190,39 @@ var AppHelpFlagGroups = []flagGroup{
...
@@ -189,6 +190,39 @@ var AppHelpFlagGroups = []flagGroup{
},
},
}
}
// byCategory sorts an array of flagGroup by Name in the order
// defined in AppHelpFlagGroups.
type
byCategory
[]
flagGroup
func
(
a
byCategory
)
Len
()
int
{
return
len
(
a
)
}
func
(
a
byCategory
)
Swap
(
i
,
j
int
)
{
a
[
i
],
a
[
j
]
=
a
[
j
],
a
[
i
]
}
func
(
a
byCategory
)
Less
(
i
,
j
int
)
bool
{
iCat
,
jCat
:=
a
[
i
]
.
Name
,
a
[
j
]
.
Name
iIdx
,
jIdx
:=
len
(
AppHelpFlagGroups
),
len
(
AppHelpFlagGroups
)
// ensure non categorized flags come last
for
i
,
group
:=
range
AppHelpFlagGroups
{
if
iCat
==
group
.
Name
{
iIdx
=
i
}
if
jCat
==
group
.
Name
{
jIdx
=
i
}
}
return
iIdx
<
jIdx
}
func
flagCategory
(
flag
cli
.
Flag
)
string
{
for
_
,
category
:=
range
AppHelpFlagGroups
{
for
_
,
flg
:=
range
category
.
Flags
{
if
flg
.
GetName
()
==
flag
.
GetName
()
{
return
category
.
Name
}
}
}
return
"MISC"
}
func
init
()
{
func
init
()
{
// Override the default app help template
// Override the default app help template
cli
.
AppHelpTemplate
=
AppHelpTemplate
cli
.
AppHelpTemplate
=
AppHelpTemplate
...
@@ -198,6 +232,7 @@ func init() {
...
@@ -198,6 +232,7 @@ func init() {
App
interface
{}
App
interface
{}
FlagGroups
[]
flagGroup
FlagGroups
[]
flagGroup
}
}
// Override the default app help printer, but only for the global app help
// Override the default app help printer, but only for the global app help
originalHelpPrinter
:=
cli
.
HelpPrinter
originalHelpPrinter
:=
cli
.
HelpPrinter
cli
.
HelpPrinter
=
func
(
w
io
.
Writer
,
tmpl
string
,
data
interface
{})
{
cli
.
HelpPrinter
=
func
(
w
io
.
Writer
,
tmpl
string
,
data
interface
{})
{
...
@@ -227,6 +262,27 @@ func init() {
...
@@ -227,6 +262,27 @@ func init() {
}
}
// Render out custom usage screen
// Render out custom usage screen
originalHelpPrinter
(
w
,
tmpl
,
helpData
{
data
,
AppHelpFlagGroups
})
originalHelpPrinter
(
w
,
tmpl
,
helpData
{
data
,
AppHelpFlagGroups
})
}
else
if
tmpl
==
utils
.
CommandHelpTemplate
{
// Iterate over all command specific flags and categorize them
categorized
:=
make
(
map
[
string
][]
cli
.
Flag
)
for
_
,
flag
:=
range
data
.
(
cli
.
Command
)
.
Flags
{
if
_
,
ok
:=
categorized
[
flag
.
String
()];
!
ok
{
categorized
[
flagCategory
(
flag
)]
=
append
(
categorized
[
flagCategory
(
flag
)],
flag
)
}
}
// sort to get a stable ordering
sorted
:=
make
([]
flagGroup
,
0
,
len
(
categorized
))
for
cat
,
flgs
:=
range
categorized
{
sorted
=
append
(
sorted
,
flagGroup
{
cat
,
flgs
})
}
sort
.
Sort
(
byCategory
(
sorted
))
// add sorted array to data and render with default printer
originalHelpPrinter
(
w
,
tmpl
,
map
[
string
]
interface
{}{
"cmd"
:
data
,
"categorizedFlags"
:
sorted
,
})
}
else
{
}
else
{
originalHelpPrinter
(
w
,
tmpl
,
data
)
originalHelpPrinter
(
w
,
tmpl
,
data
)
}
}
...
...
cmd/utils/flags.go
View file @
07aae19e
...
@@ -56,6 +56,19 @@ import (
...
@@ -56,6 +56,19 @@ import (
"gopkg.in/urfave/cli.v1"
"gopkg.in/urfave/cli.v1"
)
)
var
(
CommandHelpTemplate
=
`{{.cmd.Name}}{{if .cmd.Subcommands}} command{{end}}{{if .cmd.Flags}} [command options]{{end}} [arguments...]
{{if .cmd.Description}}{{.cmd.Description}}
{{end}}{{if .cmd.Subcommands}}
SUBCOMMANDS:
{{range .cmd.Subcommands}}{{.cmd.Name}}{{with .cmd.ShortName}}, {{.cmd}}{{end}}{{ "\t" }}{{.cmd.Usage}}
{{end}}{{end}}{{if .categorizedFlags}}
{{range $idx, $categorized := .categorizedFlags}}{{$categorized.Name}} OPTIONS:
{{range $categorized.Flags}}{{"\t"}}{{.}}
{{end}}
{{end}}{{end}}`
)
func
init
()
{
func
init
()
{
cli
.
AppHelpTemplate
=
`{{.Name}} {{if .Flags}}[global options] {{end}}command{{if .Flags}} [command options]{{end}} [arguments...]
cli
.
AppHelpTemplate
=
`{{.Name}} {{if .Flags}}[global options] {{end}}command{{if .Flags}} [command options]{{end}} [arguments...]
...
@@ -70,16 +83,7 @@ GLOBAL OPTIONS:
...
@@ -70,16 +83,7 @@ GLOBAL OPTIONS:
{{end}}{{end}}
{{end}}{{end}}
`
`
cli
.
CommandHelpTemplate
=
`{{.Name}}{{if .Subcommands}} command{{end}}{{if .Flags}} [command options]{{end}} [arguments...]
cli
.
CommandHelpTemplate
=
CommandHelpTemplate
{{if .Description}}{{.Description}}
{{end}}{{if .Subcommands}}
SUBCOMMANDS:
{{range .Subcommands}}{{.Name}}{{with .ShortName}}, {{.}}{{end}}{{ "\t" }}{{.Usage}}
{{end}}{{end}}{{if .Flags}}
OPTIONS:
{{range .Flags}}{{.}}
{{end}}{{end}}
`
}
}
// NewApp creates an app with sane defaults.
// NewApp creates an app with sane defaults.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment