package main import ( "github.com/urfave/cli/v2" "gitnet.fr/deblan/expiration-check/checker" "gitnet.fr/deblan/expiration-check/render" ) func NormalizeFormat(format string) string { formats := []string{"json", "table", "csv", "tsv", "html", "markdown"} for _, f := range formats { if f == format { return f } } return "table" } func App() *cli.App { flags := []cli.Flag{ &cli.StringSliceFlag{ Name: "domain", Aliases: []string{"d"}, Required: true, Usage: "list of domains", }, &cli.StringFlag{ Name: "format", Aliases: []string{"f"}, Required: false, Value: "table", Usage: "output format: table, csv, tsv, html, json, markdown", }, } return &cli.App{ Commands: []*cli.Command{ { Name: "certificate", Aliases: []string{"c", "cert", "certs", "certificates"}, Usage: "Checks certificate", Flags: flags, Action: func(c *cli.Context) error { render.Render( checker.CheckCertificates(c.StringSlice("domain")), 30, 14, NormalizeFormat(c.String("format")), ) return nil }, }, { Name: "domain", Usage: "Checks domain expirations", Aliases: []string{"d", "domains"}, Flags: flags, Action: func(c *cli.Context) error { render.Render( checker.CheckDomains(c.StringSlice("domain")), 30, 14, NormalizeFormat(c.String("format")), ) return nil }, }, }, } }