From 7a6740eb8c8e6902d1379273ba9dc7c4c2c14cdf Mon Sep 17 00:00:00 2001 From: Gabriel PĂ©rez-Cerezo Date: Tue, 16 Jul 2019 17:17:18 +0200 Subject: Keep a backup file where stuff is written to when saving This should prevent yet another train service disaster. --- advtrains/init.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/advtrains/init.lua b/advtrains/init.lua index 3fc0de0..2bcfb0c 100644 --- a/advtrains/init.lua +++ b/advtrains/init.lua @@ -358,14 +358,15 @@ advtrains.avt_save = function(remove_players_from_wagons) minetest.log("error", " Failed to serialize advtrains save data!") return end - local file, err = io.open(advtrains.fpath, "w") + local temppath = advtrains.fpath.."~" + local file, err = io.open(temppath, "w") if err then - minetest.log("error", " Failed to write advtrains save data to file "..advtrains.fpath..": "..(err or "Unknown Error")) + minetest.log("error", " Failed to write advtrains save data to file "..temppath..": "..(err or "Unknown Error")) return end file:write(datastr) file:close() - + os.rename(temppath, advtrains.fpath) if DUMP_DEBUG_SAVE then local file, err = io.open(advtrains.fpath.."_DUMP", "w") if err then -- cgit v1.2.3