xban2/shutil.lua

43 lines
819 B
Lua

shutil = { }
function shutil.copy_file(src, dst)
local e, sf, df, cont, ok
sf, e = io.open(src, "rb")
if not sf then
return nil, "Error opening input: "..(e or "")
end
df, e = io.open(dst, "wb")
if not df then
sf:close()
return nil, "Error opening output: "..(e or "")
end
cont, e = sf:read("*a")
if not cont then
sf:close()
df:close()
return nil, "Error reading input: "..(e or "")
end
ok, e = df:write(cont)
if not ok then
sf:close()
df:close()
return nil, "Error writing output: "..(e or "")
end
sf:close()
df:close()
return true
end
function shutil.move_file(src, dst)
local ok, e = shutil.copy_file(src, dst)
if not ok then
return nil, "Copy failed: "..(e or "")
end
ok, e = os.remove(src)
if not ok then
return nil, "Remove failed: "..(e or "")
end
return true
end