1
0
mirror of https://github.com/drone/drone-cli.git synced 2025-02-20 00:21:08 +01:00
drone-cli/drone/template/template_info.go

67 lines
1.3 KiB
Go

package template
import (
"errors"
"html/template"
"os"
"github.com/drone/drone-cli/drone/internal"
"github.com/drone/funcmap"
"github.com/urfave/cli"
)
var templateInfoCmd = cli.Command{
Name: "info",
Usage: "display template info",
ArgsUsage: "[namespace] [name]",
Action: templateInfo,
Flags: []cli.Flag{
cli.StringFlag{
Name: "namespace",
Usage: "organization namespace",
},
cli.StringFlag{
Name: "name",
Usage: "template name",
},
cli.StringFlag{
Name: "format",
Usage: "format output",
Value: tmplTemplateInfoList,
},
},
}
func templateInfo(c *cli.Context) error {
var (
namespace = c.String("namespace")
templateName = c.String("name")
format = c.String("format") + "\n"
)
if templateName == "" {
return errors.New("Missing template name")
}
if namespace == "" {
return errors.New("Missing namespace")
}
client, err := internal.NewClient(c)
if err != nil {
return err
}
templates, err := client.Template(namespace, templateName)
if err != nil {
return err
}
tmpl, err := template.New("_").Funcs(funcmap.Funcs).Parse(format)
if err != nil {
return err
}
return tmpl.Execute(os.Stdout, templates)
}
var tmplTemplateInfoList = "\x1b[33m{{ .Name }} \x1b[0m" + `
Data: {{ .Data }}
`