chore: Add command desc & color commands (#2013)
* Add link & Color sub-commands * Color sub-commands for unix-like OS * Remove useless code * Remove redundant dependencymaster
parent
b44e8f5c75
commit
93b3f5030f
@ -0,0 +1,60 @@
|
|||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"runtime"
|
||||||
|
|
||||||
|
"github.com/logrusorgru/aurora"
|
||||||
|
"github.com/zeromicro/go-zero/tools/goctl/vars"
|
||||||
|
)
|
||||||
|
|
||||||
|
var colorRender = []func(v interface{}) string{
|
||||||
|
func(v interface{}) string {
|
||||||
|
return aurora.BrightRed(v).String()
|
||||||
|
},
|
||||||
|
func(v interface{}) string {
|
||||||
|
return aurora.BrightGreen(v).String()
|
||||||
|
},
|
||||||
|
func(v interface{}) string {
|
||||||
|
return aurora.BrightYellow(v).String()
|
||||||
|
},
|
||||||
|
func(v interface{}) string {
|
||||||
|
return aurora.BrightBlue(v).String()
|
||||||
|
},
|
||||||
|
func(v interface{}) string {
|
||||||
|
return aurora.BrightMagenta(v).String()
|
||||||
|
},
|
||||||
|
func(v interface{}) string {
|
||||||
|
return aurora.BrightCyan(v).String()
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
func blue(s string) string {
|
||||||
|
if runtime.GOOS == vars.OsWindows {
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
return aurora.BrightBlue(s).String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func green(s string) string {
|
||||||
|
if runtime.GOOS == vars.OsWindows {
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
return aurora.BrightGreen(s).String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func rainbow(s string) string {
|
||||||
|
if runtime.GOOS == vars.OsWindows {
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
s0 := s[0]
|
||||||
|
return colorRender[int(s0)%(len(colorRender)-1)](s)
|
||||||
|
}
|
||||||
|
|
||||||
|
// rpadx adds padding to the right of a string.
|
||||||
|
func rpadx(s string, padding int) string {
|
||||||
|
template := fmt.Sprintf("%%-%ds", padding)
|
||||||
|
return rainbow(fmt.Sprintf(template, s))
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
{{blue "Usage:"}}{{if .Runnable}}
|
||||||
|
{{green .UseLine}}{{end}}{{if .HasAvailableSubCommands}}
|
||||||
|
{{green .CommandPath}} [command]{{end}}{{if gt (len .Aliases) 0}}
|
||||||
|
|
||||||
|
{{blue "Aliases:"}}
|
||||||
|
{{green .NameAndAliases}}{{end}}{{if .HasExample}}
|
||||||
|
|
||||||
|
{{blue "Examples:"}}
|
||||||
|
{{.Example}}{{end}}{{if .HasAvailableSubCommands}}
|
||||||
|
|
||||||
|
{{blue "Available Commands:"}}{{range .Commands}}{{if (or .IsAvailableCommand (eq .Name "help"))}}
|
||||||
|
{{rpadx .Name .NamePadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}}
|
||||||
|
|
||||||
|
{{blue "Flags:"}}
|
||||||
|
{{green .LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}}
|
||||||
|
|
||||||
|
{{blue "Global Flags:"}}
|
||||||
|
{{green .InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}}
|
||||||
|
|
||||||
|
{{blue "Additional help topics:"}}{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}}
|
||||||
|
{{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}}
|
||||||
|
|
||||||
|
Use "{{green .CommandPath}} [command] --help" for more information about a command.{{end}}
|
Loading…
Reference in New Issue