cleanup CSP generator
1 file changed, 12 insertions(+), 15 deletions(-)
M internal/config/cspgenerator.go → internal/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") }