View difference between Paste ID: 3jhm8kTZ and 1rQJ9wC7
SHOW: | | - or go back to the newest paste.
1
--[[
2
	Filesystem
3
	explorer
4
	by Creator
5
]]--
6
local args = {...}
7
local ignore = {}
8
if args[3] then
9
	local file = fs.open(args[3],"r")
10
	local data = file.readAll()
11
	file.close()
12
	for token in string.gmatch(data,"[^\n]+") do
13
		ignore[#ignore+1] = token
14
	end
15
end
16
17
local filesystem = {}
18
19
local function readFile(path)
20
	local file = fs.open(path,"r")
21
	local variable = file.readAll()
22
	file.close()
23
	return variable
24
end
25
26
local function isNotBanned(path)
27
	for i,v in pairs(ignore) do
28
		if v == path then
29
			return false
30
		end
31
	end
32
	return true
33
end
34
35
local function explore(dir)
36
	local buffer = {}
37
	local sBuffer = fs.list(dir)
38
	for i,v in pairs(sBuffer) do
39
		sleep(0.05)
40
		if isNotBanned(dir.."/"..v) then
41
			if fs.isDir(dir.."/"..v) then
42
				if v ~= ".git" then
43
					print("Compressing directory: "..dir.."/"..v)
44
					buffer[v] = explore(dir.."/"..v)
45
				end
46
			else
47
				print("Compressing file: "..dir.."/"..v)
48
				buffer[v] = readFile(dir.."/"..v)
49
			end
50
		end
51
	end
52
	return buffer
53
end
54
55
append = [[
56
local function writeFile(path,content)
57
	local file = fs.open(path,"w")
58
	file.write(content)
59
	file.close()
60
end
61
function writeDown(input,dir)
62-
		for i,v in pairs(input) do
62+
	print("Added \""..dir.."\" as a search directory and searching now...")
63
	for i,v in pairs(input) do
64
		if type(v) == "table" then
65
			print("Adding \""..dir.."/"..i.."\" as a search directory...")
66
			writeDown(v,dir.."/"..i)
67
		elseif type(v) == "string" then
68
			print("Installing file \""..dir.."/"..i.."\"...")
69
			writeFile(dir.."/"..i,v)
70
			print("Installed file \""..dir.."/"..i.."\".")
71-
args = {...}
71+
72-
if #args == 0 then
72+
73-
	print("Please input a destination folder.")
73+
74-
else
74+
75-
	writeDown(inputTable,args[1])
75+
function getInput(txt)
76
	term.setTextColor(colors.green)
77
	write(txt)
78
	term.setTextColor(colors.lime)
79
	write("> ")
80
	term.setTextColor(colors.yellow)
81
	local input = io.read()
82
	term.setTextColor(colors.white)
83
	return input
84
end
85
86
print("Please input a destination folder:")
87
local dir = getInput(shell.getRunningProgram())
88
print()
89
writeDown(inputTable,dir)
90
91
92
]]
93
94
local filesystem = explore(args[1])
95
local file = fs.open(args[2],"w")
96
file.write("inputTable = "..textutils.serialize(filesystem).."\n\n\n\n\n\n\n\n\n"..append)
97
file.close()