forked from minetest-mods/xban2
43 lines
819 B
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
|