diff options
Diffstat (limited to 'bin-src/diff-pem2html.go')
-rw-r--r-- | bin-src/diff-pem2html.go | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/bin-src/diff-pem2html.go b/bin-src/diff-pem2html.go index efe253b..c0d3e7d 100644 --- a/bin-src/diff-pem2html.go +++ b/bin-src/diff-pem2html.go @@ -5,29 +5,16 @@ package main import ( "crypto/x509" "encoding/pem" + "errors" "fmt" "html/template" - "io/ioutil" + "io" "os" "git.lukeshu.com/dashboard/bin-src/util" ) -func handleErr(err error, str string, a ...interface{}) { - a = append([]interface{}{err}, a...) - if err != nil { - fmt.Fprintf(os.Stderr, str, a...) - os.Exit(1) - } -} - -func handleBool(ok bool, str string, a ...interface{}) { - if !ok { - fmt.Fprintf(os.Stderr, str, a...) - os.Exit(1) - } -} - +//nolint:gochecknoglobals // would be const var tmpl = template.Must(template.New("pem2html"). Funcs(template.FuncMap{ "htmlcell": util.HTMLCellEscapeString, @@ -65,8 +52,17 @@ func (cert Cert) Class() string { } func main() { - data, err := ioutil.ReadAll(os.Stdin) - handleErr(err, "Error reading stdin: %v\n") + if err := mainWithError(); err != nil { + _, _ = fmt.Fprintf(os.Stderr, "%s: error: %v", os.Args[0], err) + os.Exit(1) + } +} + +func mainWithError() error { + data, err := io.ReadAll(os.Stdin) + if err != nil { + return fmt.Errorf("reading stdin: %w", err) + } var certs []Cert a := 0 @@ -79,10 +75,14 @@ func main() { var cert Cert cert.Url, ok = certPem.Headers["X-Crt-Sh-Url"] - handleBool(ok, "Did not get X-Crt-Sh-Url\n") + if !ok { + return errors.New("did not get X-Crt-Sh-Url") + } cert.action, ok = certPem.Headers["X-Diff-Action"] - handleBool(ok, "Did not get X-Diff-Action\n") + if !ok { + return errors.New("did not get X-Diff-Action") + } switch cert.action { case "add": b++ @@ -92,7 +92,7 @@ func main() { a++ b++ default: - handleBool(false, "Unknown X-Diff-Action: %q\n", cert.action) + return fmt.Errorf("unknown X-Diff-Action: %q", cert.action) } cert.X509, err = x509.ParseCertificate(certPem.Bytes) @@ -103,9 +103,12 @@ func main() { certs = append(certs, cert) } - handleErr(tmpl.Execute(os.Stdout, map[string]interface{}{ + if err := tmpl.Execute(os.Stdout, map[string]any{ "certs": certs, "nTLS": a, "nCrtSh": b, - }), "Could not execute template: %v\n") + }); err != nil { + return fmt.Errorf("could not execute template: %w", err) + } + return nil } |