diff options
| author | Lizzy Fleckenstein <lizzy@vlhl.dev> | 2026-06-03 22:31:42 +0200 |
|---|---|---|
| committer | Lizzy Fleckenstein <lizzy@vlhl.dev> | 2026-06-03 23:30:17 +0200 |
| commit | 341af788ffb60b1066f7735c10a2ef8480ec0aa9 (patch) | |
| tree | b1acbfe48184a263098e6146922730dd7ece8808 /save_file.lua | |
| parent | a42c94e103ecf7cb365a8888c3f5afc785def284 (diff) | |
| download | r6p-341af788ffb60b1066f7735c10a2ef8480ec0aa9.tar.xz | |
Diffstat (limited to 'save_file.lua')
| -rw-r--r-- | save_file.lua | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/save_file.lua b/save_file.lua new file mode 100644 index 0000000..8dd85f2 --- /dev/null +++ b/save_file.lua @@ -0,0 +1,37 @@ +local util = require("util") + +local function save_file_write(filename, data) + os.rename(filename, filename..".bak") + local f = io.open(filename, "w") + if not f then + return false + end + f:write(util.json_enc(data)) + f:close() + print("[save_file] saved to " .. filename) + return true +end + +local function save_file_read(filename) + local data + local f = io.open(filename, "r") + if f then + data = util.json_dec(f:read("*all")) + f:close() + if not data then + return nil, "save_corrupted" + end + print("[save_file] loaded " .. filename) + else + data = {} + end + if not save_file_write(filename, data) then + return nil, "save_failed_write" + end + return data +end + +return { + write = save_file_write, + read = save_file_read, +} |
