Create compress.lua
This commit is contained in:
parent
fe0f8a12e9
commit
43bfc7bcff
1 changed files with 64 additions and 0 deletions
64
src/apis/compress.lua
Normal file
64
src/apis/compress.lua
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
--[[
|
||||||
|
Compress made by Creator
|
||||||
|
]]
|
||||||
|
|
||||||
|
local filesystem = {}
|
||||||
|
|
||||||
|
local function readFile(path)
|
||||||
|
local file = fs.open(path,"r")
|
||||||
|
local variable = file.readAll()
|
||||||
|
file.close()
|
||||||
|
return variable
|
||||||
|
end
|
||||||
|
|
||||||
|
local function explore(dir)
|
||||||
|
local buffer = {}
|
||||||
|
local sBuffer = fs.list(dir)
|
||||||
|
for i,v in pairs(sBuffer) do
|
||||||
|
sleep(0.05)
|
||||||
|
if fs.isDir(dir.."/"..v) then
|
||||||
|
if v ~= ".git" then
|
||||||
|
buffer[v] = explore(dir.."/"..v)
|
||||||
|
end
|
||||||
|
buffer[v] = readFile(dir.."/"..v)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return buffer
|
||||||
|
end
|
||||||
|
|
||||||
|
local function writeFile(path,content)
|
||||||
|
local file = fs.open(path,"w")
|
||||||
|
file.write(content)
|
||||||
|
file.close()
|
||||||
|
end
|
||||||
|
|
||||||
|
local function writeDown(input,dir)
|
||||||
|
for i,v in pairs(input) do
|
||||||
|
if type(v) == "table" then
|
||||||
|
writeDown(v,dir.."/"..i)
|
||||||
|
elseif type(v) == "string" then
|
||||||
|
writeFile(dir.."/"..i,v)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function compress(input, output)
|
||||||
|
if not output then error("expected string") end
|
||||||
|
if not fs.exists(input) then error("file not found") end
|
||||||
|
local filesystem = explore(input)
|
||||||
|
local file = fs.open(output,"w")
|
||||||
|
file.write(textutils.serialize(filesystem))
|
||||||
|
file.close()
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
function decompress(input, output)
|
||||||
|
if not output then error("expected string") end
|
||||||
|
if not fs.exists(input) then error("file not found") end
|
||||||
|
local file = fs.open(input,"r")
|
||||||
|
f = file.readAll()
|
||||||
|
file.close()
|
||||||
|
inputTable = textutils.unserialize(f)
|
||||||
|
writeDown(inputTable,output)
|
||||||
|
return true
|
||||||
|
end
|
Loading…
Reference in a new issue