summaryrefslogtreecommitdiff
path: root/bin-src/diff-pem2html.go
diff options
context:
space:
mode:
Diffstat (limited to 'bin-src/diff-pem2html.go')
-rw-r--r--bin-src/diff-pem2html.go49
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
}