use new app.ExtraInfo inside minio and donut commands properly

This commit is contained in:
Harshavardhana 2015-07-24 23:55:18 -07:00
parent 8346cc74db
commit 0eefbdef0c
5 changed files with 27 additions and 16 deletions

4
Godeps/Godeps.json generated
View File

@ -39,8 +39,8 @@
},
{
"ImportPath": "github.com/minio/cli",
"Comment": "1.2.0-112-g823349c",
"Rev": "823349ce91e76834a4af0119d5bbc58fd4d2c6b0"
"Comment": "1.2.0-114-g9280cba",
"Rev": "9280cbaadcdd26d50b5ae85123682e37944701de"
},
{
"ImportPath": "gopkg.in/check.v1",

View File

@ -46,7 +46,7 @@ type App struct {
// Compilation date
Compiled string
// ExtraInfo pass additional info as a key value map
ExtraInfo map[string]string
ExtraInfo func() map[string]string
// List of all authors who contributed
Authors []Author
// Name of Author (Note: Use App.Authors, this is deprecated)
@ -125,10 +125,13 @@ func (a *App) Run(arguments []string) (err error) {
}()
HelpPrinter = func(templ string, data interface{}) {
funcMap := template.FuncMap{
"join": strings.Join,
funcMap := template.FuncMap{}
funcMap["join"] = strings.Join
// if ExtraInfo function
funcMap["ExtraInfo"] = func() map[string]string { return make(map[string]string) }
if a.ExtraInfo != nil {
funcMap["ExtraInfo"] = a.ExtraInfo
}
w := tabwriter.NewWriter(a.Writer, 0, 8, 1, '\t', 0)
t := template.Must(template.New("help").Funcs(funcMap).Parse(templ))
err := t.Execute(w, data)

View File

@ -25,7 +25,7 @@ VERSION:
{{if .Compiled}}
BUILD:
{{.Compiled}}{{end}}
{{range $key, $value := .ExtraInfo}}
{{range $key, $value := ExtraInfo}}
{{$value}}{{end}}
`

View File

@ -149,7 +149,6 @@ func main() {
// set up app
app := cli.NewApp()
app.Action = runMkdonut
app.Name = "donut"
app.Version = getVersion()
app.Compiled = getVersion()
@ -158,11 +157,15 @@ func main() {
app.Commands = commands
app.Flags = flags
app.Before = func(c *cli.Context) error {
if c.GlobalBool("debug") {
app.ExtraInfo = getSystemData()
}
globalDebugFlag = c.GlobalBool("debug")
return nil
}
app.ExtraInfo = func() map[string]string {
if globalDebugFlag {
return getSystemData()
}
return make(map[string]string)
}
app.CustomAppHelpTemplate = `NAME:
{{.Name}} - {{.Usage}}
@ -175,7 +178,7 @@ GLOBAL FLAGS:
VERSION:
{{if .Compiled}}
{{.Compiled}}{{end}}
{{range $key, $value := .ExtraInfo}}
{{range $key, $value := ExtraInfo}}
{{$key}}:
{{$value}}
{{end}}

13
main.go
View File

@ -114,11 +114,16 @@ func main() {
app.Flags = flags
app.Commands = commands
app.Before = func(c *cli.Context) error {
if c.GlobalBool("debug") {
app.ExtraInfo = getSystemData()
}
globalDebugFlag = c.GlobalBool("debug")
return nil
}
app.ExtraInfo = func() map[string]string {
if globalDebugFlag {
return getSystemData()
}
return make(map[string]string)
}
app.CustomAppHelpTemplate = `NAME:
{{.Name}} - {{.Usage}}
@ -134,7 +139,7 @@ GLOBAL FLAGS:
VERSION:
{{if .Compiled}}
{{.Compiled}}{{end}}
{{range $key, $value := .ExtraInfo}}
{{range $key, $value := ExtraInfo}}
{{$key}}:
{{$value}}
{{end}}