diff --git a/app.go b/app.go index a39982f..a45ac26 100644 --- a/app.go +++ b/app.go @@ -3,6 +3,7 @@ package main import ( "github.com/urfave/cli/v2" "gitnet.fr/deblan/expiration-check/checker" + "gitnet.fr/deblan/expiration-check/logger" "gitnet.fr/deblan/expiration-check/render" ) @@ -33,6 +34,11 @@ func App() *cli.App { Value: "table", Usage: "output format: table, csv, tsv, html, json, markdown", }, + &cli.BoolFlag{ + Name: "verbose", + Aliases: []string{"v"}, + Required: false, + }, } return &cli.App{ @@ -45,6 +51,8 @@ func App() *cli.App { Usage: "Checks certificate", Flags: flags, Action: func(c *cli.Context) error { + logger.Get().SetVerbose(c.Bool("verbose")) + render.Render( checker.CheckCertificates(c.StringSlice("domain")), 30, 14, @@ -60,6 +68,8 @@ func App() *cli.App { Aliases: []string{"d", "domains"}, Flags: flags, Action: func(c *cli.Context) error { + logger.Get().SetVerbose(c.Bool("verbose")) + render.Render( checker.CheckDomains(c.StringSlice("domain")), 30, 14, diff --git a/checker/certificates.go b/checker/certificates.go index d0721c6..1ee3caf 100644 --- a/checker/certificates.go +++ b/checker/certificates.go @@ -6,6 +6,8 @@ import ( "math" "strings" "time" + + "gitnet.fr/deblan/expiration-check/logger" ) func FormatDomain(domain string) string { @@ -26,13 +28,19 @@ func CheckCertificate(domain string) Domain { date := conn.ConnectionState().PeerCertificates[0].NotAfter daysLeft := date.Sub(now).Hours() / 24 - return Domain{ + d := Domain{ Name: domain, DaysLeft: math.Floor(daysLeft), Date: date.Format(time.DateTime), } + + logger.Get().Logf(`CheckCertificate: domain="%s" value="%+v"`, domain, d) + + return d } + logger.Get().Logf("CheckCertificate: domain=%s err=%s", domain, err) + return Domain{Name: domain, Failed: true} } diff --git a/checker/domains.go b/checker/domains.go index 119d229..1d975e2 100644 --- a/checker/domains.go +++ b/checker/domains.go @@ -10,6 +10,7 @@ import ( "time" "github.com/likexian/whois" + "gitnet.fr/deblan/expiration-check/logger" ) type RdapResponseData struct { @@ -64,15 +65,23 @@ func RdapCheck(domain, service string) Domain { date, _ := time.Parse(time.RFC3339, event.EventDate) daysLeft := date.Sub(now).Hours() / 24 - return Domain{ + d := Domain{ Name: domain, DaysLeft: math.Floor(daysLeft), Date: date.Format(time.DateTime), } + + logger.Get().Logf(`RdapCheck: domain="%s" value="%+v"`, domain, d) + + return d } } - return Domain{Name: domain, Failed: true} + d := Domain{Name: domain, Failed: true} + + logger.Get().Logf(`RdapCheck: domain="%s" value="%+v"`, domain, d) + + return d } func WhoisCheck(domain string) Domain { @@ -108,16 +117,22 @@ func WhoisCheck(domain string) Domain { if err == nil { daysLeft := date.Sub(now).Hours() / 24 - return Domain{ + d := Domain{ Name: domain, DaysLeft: math.Floor(daysLeft), Date: date.Format(time.DateTime), } + + logger.Get().Logf(`WhoisCheck: domain="%s" value="%+v"`, domain, d) + + return d } } } } + logger.Get().Logf(`WhoisCheck: domain="%s" value="%+v"`, domain, domainFailed) + return domainFailed } @@ -130,8 +145,12 @@ func CheckDomains(domains []string) []Domain { service := services[tld] if service != "" { + logger.Get().Logf(`CheckDomains: domain="%s" rdap=true whois=false`, domain) + values = append(values, RdapCheck(domain, service)) } else { + logger.Get().Logf(`CheckDomains: domain="%s" rdap=false whois=true`, domain) + values = append(values, WhoisCheck(domain)) } }