all repos — homestead @ 8eb6009f7b7db80632805aca7bb3c6789ca00e32

Code for my website

cleanup CSP generator

Alan Pearce
commit

8eb6009f7b7db80632805aca7bb3c6789ca00e32

parent

05192b0ec50b23414edc1256d8ba7dcad34d8ff8

1 file changed, 12 insertions(+), 15 deletions(-)

jump to
M internal/config/cspgenerator.gointernal/config/cspgenerator.go
@@ -13,13 +13,17 @@ "gitlab.com/tozd/go/errors"
) func GenerateCSP() errors.E { - t := reflect.TypeFor[csp.Header]() + headerType := reflect.TypeFor[csp.Header]() file, err := os.OpenFile("./csp.go", os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0) if err != nil { - - return errors.WithMessage(err, "could not write to output") + return errors.WithMessage(err, "could not open file") } - defer file.Close() + defer func() { + err := file.Close() + if err != nil { + panic("could not close file: " + err.Error()) + } + }() _, err = fmt.Fprintf(file, `package config
@@ -29,21 +33,14 @@ import (
"github.com/crewjam/csp" ) +type CSP struct { `) if err != nil { - return errors.WithMessage(err, "could not write to output") } - _, err = fmt.Fprintf(file, "type CSP struct {\n") - if err != nil { - return errors.WithMessage(err, "could not write to output") - } - - for i := 0; i < t.NumField(); i++ { - field := t.Field(i) - var t reflect.Type - t = field.Type + for _, field := range reflect.VisibleFields(headerType) { + fieldType := field.Type tags, err := structtag.Parse(string(field.Tag)) if err != nil { return errors.WithMessage(err, "could not write to output")
@@ -60,7 +57,7 @@ if err != nil {
return errors.WithMessage(err, "could not set toml tag") } - _, err = fmt.Fprintf(file, "\t%-23s %-28s `%s`\n", field.Name, t, tags.String()) + _, err = fmt.Fprintf(file, "\t%-23s %-28s `%s`\n", field.Name, fieldType, tags.String()) if err != nil { return errors.WithMessage(err, "could not write to output") }