diff options
Diffstat (limited to 'cmd/gen-posix/main.go')
-rw-r--r-- | cmd/gen-posix/main.go | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/cmd/gen-posix/main.go b/cmd/gen-posix/main.go index 66a2588..354fd3f 100644 --- a/cmd/gen-posix/main.go +++ b/cmd/gen-posix/main.go @@ -1,6 +1,8 @@ package main import ( + "bytes" + "fmt" "html/template" "os" ) @@ -179,12 +181,28 @@ var tmpl = `{{define "document"}}{{if .}} </html> ` -func main() { - err := template.Must(template.New("page").Parse(tmpl)).Execute(os.Stdout, map[string]interface{}{ +func mainWithError() error { + tmpl := template.Must(template.New("page").Parse(tmpl)) + + var out bytes.Buffer + if err := tmpl.Execute(&out, map[string]interface{}{ "Vendors": Vendors, "Editions": Editions, - }) - if err != nil { - panic(err) + }); err != nil { + return err + } + if err := os.WriteFile("public/posix/index.new.html", out.Bytes(), 0666); err != nil { + return err + } + if err := os.Rename("public/posix/index.new.html", "public/posix/index.html"); err != nil { + return err + } + return nil +} + +func main() { + if err := mainWithError(); err != nil { + fmt.Fprintf(os.Stderr, "%s: error: %v\n", os.Args[0], err) + os.Exit(1) } } |