summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2024-04-17 01:59:02 -0600
committerLuke T. Shumaker <lukeshu@lukeshu.com>2024-04-17 01:59:02 -0600
commitf5d2c5668d7c79ff24afebe36a1f9879f2eb3d5f (patch)
tree2b8ebd2ae8dfbeca02ec3d6ed0a7b1d26910342c
parentfc0e50be224d45ec1bf7d40a81e408c45bdec1be (diff)
Update imworkingon atomically, don't delete it on failure
-rw-r--r--Makefile1
-rw-r--r--cmd/generate/main.go5
2 files changed, 5 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 6f4ec87..0ece25f 100644
--- a/Makefile
+++ b/Makefile
@@ -29,6 +29,7 @@ generate-clean:
public/imworkingon/index.html: FORCE
go run ./cmd/generate
+.PRECIOUS: public/imworkingon/index.html
public/imworkingon/imworkingon.css: public/imworkingon/imworkingon.scss
sass $< $@
diff --git a/cmd/generate/main.go b/cmd/generate/main.go
index cee752f..e26120d 100644
--- a/cmd/generate/main.go
+++ b/cmd/generate/main.go
@@ -91,7 +91,10 @@ func mainWithError() error {
}); err != nil {
return err
}
- if err := os.WriteFile("public/imworkingon/index.html", out.Bytes(), 0666); err != nil {
+ if err := os.WriteFile("public/imworkingon/index.new.html", out.Bytes(), 0666); err != nil {
+ return err
+ }
+ if err := os.Rename("public/imworkingon/index.new.html", "public/imworkingon/index.html"); err != nil {
return err
}
return nil