mirror of
https://github.com/kataras/iris.git
synced 2025-01-23 18:51:03 +01:00
44 lines
1.0 KiB
Go
44 lines
1.0 KiB
Go
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
"runtime"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
// HelpTemplate is the structure which holds the necessary information for the help command.
|
|
type HelpTemplate struct {
|
|
BuildTime string
|
|
BuildRevision string
|
|
ShowGoRuntimeVersion bool
|
|
|
|
Template fmt.Stringer
|
|
}
|
|
|
|
func (h HelpTemplate) String() string {
|
|
tmpl := `{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}}
|
|
{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}`
|
|
|
|
if h.BuildRevision != "" {
|
|
buildTitle := ">>>> build" // if we ever want an emoji, there is one: \U0001f4bb
|
|
tab := strings.Repeat(" ", len(buildTitle))
|
|
|
|
n, _ := strconv.ParseInt(h.BuildTime, 10, 64)
|
|
buildTimeStr := time.Unix(n, 0).Format(time.UnixDate)
|
|
|
|
buildTmpl := fmt.Sprintf("\n%s\n", buildTitle) +
|
|
fmt.Sprintf("%s revision %s\n", tab, h.BuildRevision) +
|
|
fmt.Sprintf("%s datetime %s\n", tab, buildTimeStr)
|
|
|
|
if h.ShowGoRuntimeVersion {
|
|
buildTmpl += fmt.Sprintf("%s runtime %s\n", tab, runtime.Version())
|
|
}
|
|
|
|
tmpl += buildTmpl
|
|
}
|
|
|
|
return tmpl
|
|
}
|