diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-24 15:04:12 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-24 15:04:12 +0200 |
| commit | e6665bd3f9ae011f65788004e4eab4472a461e8f (patch) | |
| tree | 604141f068b03276d590d2e2418673960236e994 /internal/web/server.go | |
| parent | 2453b598def94649cc7ce9af7155bfaad40cce12 (diff) | |
| download | lectio-e6665bd3f9ae011f65788004e4eab4472a461e8f.tar.gz lectio-e6665bd3f9ae011f65788004e4eab4472a461e8f.zip | |
web: don't clobber books.toml when the settings books field is empty
Diffstat (limited to 'internal/web/server.go')
| -rw-r--r-- | internal/web/server.go | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/internal/web/server.go b/internal/web/server.go index 34371b7..d7f0ebc 100644 --- a/internal/web/server.go +++ b/internal/web/server.go @@ -651,8 +651,13 @@ func settingsPost(s *server) http.HandlerFunc { renderSettingsError(w, cfg, booksText, "saving config: "+err.Error()) return } - if p, err := config.BooksPath(); err == nil { - _ = os.WriteFile(p, []byte(booksText), 0o644) + // Only write books.toml when the editor actually carried content, so a + // submit with an empty/absent books field never clobbers an existing + // override (the form always pre-fills the textarea). + if strings.TrimSpace(booksText) != "" { + if p, err := config.BooksPath(); err == nil { + _ = os.WriteFile(p, []byte(booksText), 0o644) + } } s.apply(cfg, newTbl) |
