expiration-check/app.go
Simon Vieille 63310a2f2e
All checks were successful
ci/woodpecker/push/build Pipeline was successful
fix descriptions
2024-07-24 09:14:35 +02:00

74 lines
1.5 KiB
Go

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{
Usage: "Checks the expiration dates of domains and certificates",
HelpName: "expiration-check",
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
},
},
},
}
}