improve argument/option printing content for package gcmd

This commit is contained in:
John Guo
2021-12-14 22:34:06 +08:00
parent bb1a95fff8
commit 4c7e409e61
2 changed files with 18 additions and 9 deletions

View File

@ -65,16 +65,17 @@ func (c *Command) Print() {
}
}
for _, cmd := range c.commands {
brief := gstr.Replace(cmd.Brief, "\n", "")
// Add "..." to brief for those commands that also have sub-commands.
if len(cmd.commands) > 0 {
cmd.Brief = gstr.TrimRight(cmd.Brief, ".") + "..."
brief = gstr.TrimRight(brief, ".") + "..."
}
var (
spaceLength = maxSpaceLength - len(cmd.Name)
wordwrapPrefix = gstr.Repeat(" ", len(prefix+cmd.Name)+spaceLength+4)
lineStr = fmt.Sprintf(
"%s%s%s%s\n",
prefix, cmd.Name, gstr.Repeat(" ", spaceLength+4), gstr.Trim(cmd.Brief),
prefix, cmd.Name, gstr.Repeat(" ", spaceLength+4), gstr.Trim(brief),
)
)
lineStr = gstr.WordWrap(lineStr, maxLineChars, "\n"+wordwrapPrefix)
@ -102,11 +103,12 @@ func (c *Command) Print() {
continue
}
var (
brief = gstr.Trim(gstr.Replace(arg.Brief, "\n", ""))
spaceLength = maxSpaceLength - len(arg.Name)
wordwrapPrefix = gstr.Repeat(" ", len(prefix+arg.Name)+spaceLength+4)
lineStr = fmt.Sprintf(
"%s%s%s%s\n",
prefix, arg.Name, gstr.Repeat(" ", spaceLength+4), gstr.Trim(arg.Brief),
prefix, arg.Name, gstr.Repeat(" ", spaceLength+4), brief,
)
)
lineStr = gstr.WordWrap(lineStr, maxLineChars, "\n"+wordwrapPrefix)
@ -145,11 +147,12 @@ func (c *Command) Print() {
nameStr = fmt.Sprintf("-/--%s", arg.Name)
}
var (
brief = gstr.Trim(gstr.Replace(arg.Brief, "\n", ""))
spaceLength = maxSpaceLength - len(nameStr)
wordwrapPrefix = gstr.Repeat(" ", len(prefix+nameStr)+spaceLength+4)
lineStr = fmt.Sprintf(
"%s%s%s%s\n",
prefix, nameStr, gstr.Repeat(" ", spaceLength+4), gstr.Trim(arg.Brief),
prefix, nameStr, gstr.Repeat(" ", spaceLength+4), brief,
)
)
lineStr = gstr.WordWrap(lineStr, maxLineChars, "\n"+wordwrapPrefix)

View File

@ -86,15 +86,21 @@ PLATFORMS
plan9 386
plan9 amd64
solaris amd64
`
commandBuildBriefPack = `
destination file path for packed file. if extension of the filename is ".go" and "-n" option is given,
it enables packing SRC to go file, or else it packs SRC into a binary file.
`
)
func init() {
gtag.Sets(map[string]string{
`commandBuildBrief`: commandBuildBrief,
`commandBuildDc`: commandBuildDc,
`commandBuildEg`: commandBuildEg,
`commandBuildAd`: commandBuildAd,
`commandBuildBrief`: commandBuildBrief,
`commandBuildDc`: commandBuildDc,
`commandBuildEg`: commandBuildEg,
`commandBuildAd`: commandBuildAd,
`commandBuildBriefPack`: commandBuildBriefPack,
})
}
@ -109,7 +115,7 @@ type commandBuildInput struct {
Extra string `short:"e" name:"extra" brief:"extra custom \"go build\" options"`
Mod string `short:"m" name:"mod" brief:"like \"-mod\" option of \"go build\", use \"-m none\" to disable go module"`
Cgo bool `short:"c" name:"cgo" brief:"enable or disable cgo feature, it's disabled in default" orphan:"true"`
Pack string `name:"pack" brief:"pack specified folder into temporary go file before building and removes it after built"`
Pack string `name:"pack" brief:"{commandBuildBriefPack}"`
}
type commandBuildOutput struct{}