|
@@ -16,13 +16,14 @@ import (
|
|
|
_ "unsafe" // for go:linkname
|
|
|
|
|
|
"github.com/gogo/protobuf/proto"
|
|
|
+ "github.com/Masterminds/sprig"
|
|
|
"github.com/spf13/cobra"
|
|
|
"github.com/spf13/pflag"
|
|
|
"golang.org/x/crypto/ssh/terminal"
|
|
|
progress "gopkg.in/cheggaaa/pb.v1"
|
|
|
+ "gopkg.in/src-d/go-billy-siva.v4"
|
|
|
"gopkg.in/src-d/go-billy.v4/memfs"
|
|
|
"gopkg.in/src-d/go-billy.v4/osfs"
|
|
|
- "gopkg.in/src-d/go-billy-siva.v4"
|
|
|
"gopkg.in/src-d/go-git.v4"
|
|
|
"gopkg.in/src-d/go-git.v4/plumbing/object"
|
|
|
"gopkg.in/src-d/go-git.v4/storage"
|
|
@@ -326,6 +327,7 @@ func formatUsage(c *cobra.Command) error {
|
|
|
"plumbing": plumbing,
|
|
|
"features": features,
|
|
|
}
|
|
|
+ cobra.AddTemplateFuncs(sprig.TxtFuncMap())
|
|
|
|
|
|
template := `Usage:{{if .c.Runnable}}
|
|
|
{{.c.UseLine}}{{end}}{{if .c.HasAvailableSubCommands}}
|
|
@@ -341,17 +343,34 @@ Available Commands:{{range .c.Commands}}{{if (or .IsAvailableCommand (eq .Name "
|
|
|
{{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if .c.HasAvailableLocalFlags}}
|
|
|
|
|
|
Flags:
|
|
|
-{{.c.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}
|
|
|
+{{range $line := .c.LocalFlags.FlagUsages | trimTrailingWhitespaces | split "\n"}}
|
|
|
+{{- $desc := splitList " " $line | last}}
|
|
|
+{{- $offset := sub ($desc | len) ($desc | trim | len)}}
|
|
|
+{{- $indent := splitList " " $line | initial | join " " | len | add 3 | add $offset | int}}
|
|
|
+{{- $wrap := sub 120 $indent | int}}
|
|
|
+{{- splitList " " $line | initial | join " "}} {{cat "!" $desc | wrap $wrap | indent $indent | substr $indent -1 | substr 2 -1}}
|
|
|
+{{end}}{{end}}
|
|
|
|
|
|
Analysis Targets:{{range .leaves}}
|
|
|
- --{{rpad .Flag 40 }}Runs {{.Name}} analysis.{{range .ListConfigurationOptions}}
|
|
|
- --{{if .Type.String}}{{rpad (print .Flag " " .Type.String) 40}}{{else}}{{rpad .Flag 40}}{{end}}{{.Description}}{{if .Default}} The default value is {{.FormatDefault}}.{{end}}{{end}}{{end}}
|
|
|
+ --{{rpad .Flag 40}}Runs {{.Name}} analysis.{{wrap 72 .Description | nindent 48}}{{range .ListConfigurationOptions}}
|
|
|
+ --{{if .Type.String}}{{rpad (print .Flag " " .Type.String) 40}}{{else}}{{rpad .Flag 40}}{{end}}
|
|
|
+ {{- $desc := dict "desc" .Description}}
|
|
|
+ {{- if .Default}}{{$_ := set $desc "desc" (print .Description " The default value is " .FormatDefault ".")}}
|
|
|
+ {{- end}}
|
|
|
+ {{- $desc := pluck "desc" $desc | first}}
|
|
|
+ {{- $desc | wrap 68 | indent 52 | substr 52 -1}}{{end}}
|
|
|
+{{end}}
|
|
|
|
|
|
Plumbing Options:{{range .plumbing}}{{$name := .Name}}{{range .ListConfigurationOptions}}
|
|
|
- --{{if .Type.String}}{{rpad (print .Flag " " .Type.String " [" $name "]") 40}}{{else}}{{rpad (print .Flag " [" $name "]") 40}}{{end}}{{.Description}}{{if .Default}} The default value is {{.FormatDefault}}.{{end}}{{end}}{{end}}
|
|
|
+ --{{if .Type.String}}{{rpad (print .Flag " " .Type.String " [" $name "]") 40}}{{else}}{{rpad (print .Flag " [" $name "]") 40}}
|
|
|
+ {{- end}}
|
|
|
+ {{- $desc := dict "desc" .Description}}
|
|
|
+ {{- if .Default}}{{$_ := set $desc "desc" (print .Description " The default value is " .FormatDefault ".")}}
|
|
|
+ {{- end}}
|
|
|
+ {{- $desc := pluck "desc" $desc | first}}{{$desc | wrap 72 | indent 48 | substr 48 -1}}{{end}}{{end}}
|
|
|
|
|
|
--feature:{{range $key, $value := .features}}
|
|
|
- {{rpad $key 40}}Enables {{range $index, $item := $value}}{{if $index}}, {{end}}{{$item.Name}}{{end}}.{{end}}{{if .c.HasAvailableInheritedFlags}}
|
|
|
+ {{rpad $key 42}}Enables {{range $index, $item := $value}}{{if $index}}, {{end}}{{$item.Name}}{{end}}.{{end}}{{if .c.HasAvailableInheritedFlags}}
|
|
|
|
|
|
Global Flags:
|
|
|
{{.c.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .c.HasHelpSubCommands}}
|