From 621d39033af97bc9dd5da7363ed4fb66a990838b Mon Sep 17 00:00:00 2001 From: Tobias Ulmer Date: Mon, 25 Nov 2013 13:16:47 +0100 Subject: [PATCH] digest: use eio to write digest file Signed-off-by: Tobias Ulmer --- local/digest.lua | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/local/digest.lua b/local/digest.lua index 735c398..f198f6f 100644 --- a/local/digest.lua +++ b/local/digest.lua @@ -129,8 +129,6 @@ function digest.parse(filename) return false, e:cat(re) end - fd:close() - return dt end @@ -336,32 +334,23 @@ end function digest.write(dt, filename) assert(type(dt) == "table") assert(type(filename) == "string") + local rc, re, e, out - local e = err.new("error writing message digest file '%s'", filename) + e = err.new("error writing message digest file '%s'", filename) - local rc, re = digest.sanity_check(dt) + rc, re = digest.sanity_check(dt) if not rc then return false, e:cat(re) end - local fd, re = io.open(filename, "w") - if not fd then - return false, e:append("%s", re) - end - - local line = "" + out = {} for pos, entry in ipairs(dt) do - line = string.format("%s %s\n", entry.checksum, entry.name) - rc, re = fd:write(line) - if not rc then - fd:close() - return false, e:append("%s", re) - end + table.insert(out, string.format("%s %s\n", entry.checksum, entry.name)) end - rc, re = fd:close() + rc, re = eio.file_write(filename, table.concat(out)) if not rc then - return false, e:append("%s", re) + return false, e:cat(re) end return true -- 2.39.5