SHOW:
|
|
- or go back to the newest paste.
1 | local tArgs = { ... } | |
2 | local home | |
3 | local root | |
4 | local clipboard | |
5 | if #tArgs > 0 then | |
6 | - | home = tArgs[1] |
6 | + | home = tArgs[1] |
7 | - | else |
7 | + | else |
8 | - | home = "" |
8 | + | home = "" |
9 | - | end |
9 | + | |
10 | - | if #tArgs > 1 then |
10 | + | if #tArgs > 1 then |
11 | - | root = tArgs[2] |
11 | + | root = tArgs[2] |
12 | - | else |
12 | + | else |
13 | - | root = "/" |
13 | + | root = "/" |
14 | - | end |
14 | + | |
15 | history = {} | |
16 | history[1] = root .. home | |
17 | local w,h = term.getSize() | |
18 | local function split(inputstr, sep) | |
19 | - | if sep == nil then |
19 | + | if sep == nil then |
20 | - | sep = "%s" |
20 | + | sep = "%s" |
21 | - | end |
21 | + | end |
22 | - | local t={} ; i=1 |
22 | + | local t={} ; i=1 |
23 | - | for str in string.gmatch(inputstr, "([^"..sep.."]+)") do |
23 | + | for str in string.gmatch(inputstr, "([^"..sep.."]+)") do |
24 | - | t[i] = str |
24 | + | t[i] = str |
25 | - | i = i + 1 |
25 | + | i = i + 1 |
26 | - | end |
26 | + | end |
27 | - | return t |
27 | + | return t |
28 | end | |
29 | historyclear = function() | |
30 | - | history = {} |
30 | + | history = {} |
31 | - | history[1] = root..home |
31 | + | history[1] = root..home |
32 | end | |
33 | shellcom = {historyclear} | |
34 | local function diabox(txt) | |
35 | - | term.setBackgroundColor(colors.white) |
35 | + | term.setBackgroundColor(colors.white) |
36 | - | term.setTextColor(colors.black) |
36 | + | term.setTextColor(colors.black) |
37 | - | paintutils.drawFilledBox(math.floor(w/2-(#txt+2)/2),math.floor(h/2)-2,math.floor(w/2+(#txt+2)/2),math.floor(h/2)+2,colors.white) |
37 | + | paintutils.drawFilledBox(math.floor(w/2-(#txt+2)/2),math.floor(h/2)-2,math.floor(w/2+(#txt+2)/2),math.floor(h/2)+2,colors.white) |
38 | - | term.setCursorPos(math.floor(w/2-(#txt+2)/2)+1,math.floor(h/2)-1) |
38 | + | term.setCursorPos(math.floor(w/2-(#txt+2)/2)+1,math.floor(h/2)-1) |
39 | - | term.write(txt) |
39 | + | term.write(txt) |
40 | - | term.setCursorPos(math.floor(w/2-(#txt+2)/2)+1,math.floor(h/2)+1) |
40 | + | term.setCursorPos(math.floor(w/2-(#txt+2)/2)+1,math.floor(h/2)+1) |
41 | end | |
42 | function readtextbox(txt) | |
43 | - | diabox(txt) |
43 | + | diabox(txt) |
44 | - | return read() |
44 | + | return read() |
45 | end | |
46 | function buttonbox(txt,buttons) | |
47 | - | if type(buttons) ~= "table" then |
47 | + | if type(buttons) ~= "table" then |
48 | - | buttons = {{" Yes ",colors.red,colors.white},{" No ",colors.gray,colors.white}} |
48 | + | buttons = {{" Yes ",colors.red,colors.white},{" No ",colors.gray,colors.white}} |
49 | - | end |
49 | + | end |
50 | - | if txt == "" or txt == nil then |
50 | + | if txt == "" or txt == nil then |
51 | - | txt = " Are you sure? " |
51 | + | txt = " Are you sure? " |
52 | - | end |
52 | + | end |
53 | - | local x,y |
53 | + | local x,y |
54 | - | diabox(txt) |
54 | + | diabox(txt) |
55 | - | for i=1,#buttons do |
55 | + | for i=1,#buttons do |
56 | - | x,y = term.getCursorPos() |
56 | + | x,y = term.getCursorPos() |
57 | - | x = math.floor((w/2-(#txt+2)/2)+((#txt+2)/i)*(i-1)) + 1 |
57 | + | x = math.floor((w/2-(#txt+2)/2)+((#txt+2)/i)*(i-1)) + 1 |
58 | - | term.setCursorPos(x,y) |
58 | + | term.setCursorPos(x,y) |
59 | - | term.setBackgroundColor(buttons[i][2]) |
59 | + | term.setBackgroundColor(buttons[i][2]) |
60 | - | term.setTextColor(buttons[i][3]) |
60 | + | term.setTextColor(buttons[i][3]) |
61 | - | term.write(buttons[i][1]) |
61 | + | term.write(buttons[i][1]) |
62 | - | end |
62 | + | end |
63 | - | while true do |
63 | + | while true do |
64 | - | local _,b,x2,y2 = os.pullEvent("mouse_click") |
64 | + | local _,b,x2,y2 = os.pullEvent("mouse_click") |
65 | - | if b == 1 and y == y2 then |
65 | + | if b == 1 and y == y2 then |
66 | - | for i=1,#buttons do |
66 | + | for i=1,#buttons do |
67 | - | local x = math.floor((w/2-(#txt+2)/2)+((#txt+2)/i)*(i-1)) + 1 |
67 | + | local x = math.floor((w/2-(#txt+2)/2)+((#txt+2)/i)*(i-1)) + 1 |
68 | - | if x2 > x - 1 and x2 < x + #buttons[i][1] then |
68 | + | if x2 > x - 1 and x2 < x + #buttons[i][1] then |
69 | - | return i |
69 | + | return i |
70 | - | end |
70 | + | end |
71 | - | end |
71 | + | end |
72 | - | end |
72 | + | end |
73 | - | end |
73 | + | end |
74 | end | |
75 | local function clear() | |
76 | - | term.setBackgroundColor(colors.lightBlue) |
76 | + | term.setBackgroundColor(colors.lightBlue) |
77 | - | term.setTextColor(colors.black) |
77 | + | term.setTextColor(colors.black) |
78 | - | term.clear() |
78 | + | term.clear() |
79 | - | term.setCursorPos(1,1) |
79 | + | term.setCursorPos(1,1) |
80 | end | |
81 | local function list(path,scroll,selected) | |
82 | - | clear() |
82 | + | clear() |
83 | - | local items = fs.list(path) |
83 | + | local items = fs.list(path) |
84 | - | for i=scroll+1,scroll+h-2 do |
84 | + | for i=scroll+1,scroll+h-2 do |
85 | - | if type(items[i]) == "string" then |
85 | + | if type(items[i]) == "string" then |
86 | - | if i ~= selected then |
86 | + | if i ~= selected then |
87 | - | if not fs.isDir(path..items[i]) then |
87 | + | if not fs.isDir(path..items[i]) then |
88 | - | term.setTextColor(colors.black) |
88 | + | term.setTextColor(colors.black) |
89 | - | else |
89 | + | else |
90 | - | term.setTextColor(colors.yellow) |
90 | + | term.setTextColor(colors.yellow) |
91 | - | end |
91 | + | end |
92 | - | else |
92 | + | else |
93 | - | term.setTextColor(colors.white) |
93 | + | term.setTextColor(colors.white) |
94 | - | end |
94 | + | end |
95 | - | |
95 | + | print(items[i]) |
96 | - | print(items[i]) |
96 | + | end |
97 | - | end |
97 | + | end |
98 | - | |
98 | + | return items |
99 | - | end |
99 | + | |
100 | - | return items |
100 | + | |
101 | term.setBackgroundColor(colors.blue) | |
102 | term.setTextColor(colors.white) | |
103 | - | term.setBackgroundColor(colors.blue) |
103 | + | term.setCursorPos(1,h-1) |
104 | - | term.setTextColor(colors.white) |
104 | + | term.clearLine() |
105 | - | term.setCursorPos(1,h-1) |
105 | + | term.setCursorPos(1,h-1) |
106 | - | term.clearLine() |
106 | + | term.write(path) |
107 | - | term.setCursorPos(1,h-1) |
107 | + | term.setCursorPos(1,h) |
108 | - | term.write(path) |
108 | + | term.clearLine() |
109 | - | term.setCursorPos(1,h) |
109 | + | term.setCursorPos(1,h) |
110 | - | term.clearLine() |
110 | + | term.write("| New | MkDir | More | Root | Home | Back | Exit |") |
111 | - | term.setCursorPos(1,h) |
111 | + | |
112 | - | term.write("| New | MkDir | More | Root | Home | Back | Exit |") |
112 | + | |
113 | if y == nil then _,y = term.getCursorPos() end | |
114 | term.setCursorPos(w-#txt,y) | |
115 | - | if y == nil then _,y = term.getCursorPos() end |
115 | + | term.write(txt) |
116 | - | term.setCursorPos(w-#txt,y) |
116 | + | term.setCursorPos(1,y+1) |
117 | - | term.write(txt) |
117 | + | |
118 | - | term.setCursorPos(1,y+1) |
118 | + | |
119 | paintutils.drawFilledBox(math.floor(w/2),1,w,h-1) | |
120 | if (isDir) then | |
121 | - | paintutils.drawFilledBox(math.floor(w/2),1,w,h-1) |
121 | + | rPrint("Open",2) |
122 | - | if (isDir) then |
122 | + | rPrint("Unpack") |
123 | - | rPrint("Open",2) |
123 | + | else |
124 | - | rPrint("Unpack") |
124 | + | rPrint("Edit",2) |
125 | - | else |
125 | + | rPrint("Paint") |
126 | - | rPrint("Edit",2) |
126 | + | rPrint("Open with ...") |
127 | - | rPrint("Paint") |
127 | + | rPrint("Run") |
128 | - | rPrint("Open with ...") |
128 | + | rPrint("Run w/Args") |
129 | - | rPrint("Run") |
129 | + | end |
130 | - | rPrint("Run w/Args") |
130 | + | rPrint("Rename",7) |
131 | - | end |
131 | + | rPrint("Move") |
132 | - | rPrint("Rename",7) |
132 | + | rPrint("Copy") |
133 | - | rPrint("Move") |
133 | + | rPrint("Copy to clipboard") |
134 | - | rPrint("Copy") |
134 | + | rPrint("Delete") |
135 | - | rPrint("Copy to clipboard") |
135 | + | rPrint("Deselect") |
136 | - | rPrint("Delete") |
136 | + | |
137 | - | rPrint("Deselect") |
137 | + | |
138 | - | end |
138 | + | if type == nil then type = 1 end |
139 | if type == 1 then return "Unpacked_" .. name end | |
140 | - | if type == nil then type = 1 end |
140 | + | if type == 2 then return name .. math.random(1,10000) end |
141 | - | if type == 1 then return "Unpacked_" .. name end |
141 | + | return name .. "_pasted" |
142 | - | if type == 2 then return name .. math.random(1,10000) end |
142 | + | |
143 | - | return name .. "_pasted" |
143 | + | |
144 | if type(col) == nil then col = colors.white end | |
145 | term.setCursorPos(1,y) | |
146 | - | if type(col) == nil then col = colors.white end |
146 | + | term.clearLine() |
147 | - | term.setCursorPos(1,y) |
147 | + | term.setCursorPos(math.floor(w/2-#txt/2),y) |
148 | - | term.clearLine() |
148 | + | term.write(txt) |
149 | - | term.setCursorPos(math.floor(w/2-#txt/2),y) |
149 | + | |
150 | - | term.write(txt) |
150 | + | |
151 | clear() | |
152 | while true do | |
153 | - | clear() |
153 | + | term.setCursorPos(1,h) |
154 | - | while true do |
154 | + | term.clearLine() |
155 | - | term.setCursorPos(1,h) |
155 | + | term.setCursorPos(1,h) |
156 | - | term.clearLine() |
156 | + | term.write("? ") |
157 | - | term.setCursorPos(1,h) |
157 | + | local command = read() |
158 | - | term.write("? ") |
158 | + | clear() |
159 | - | local command = read() |
159 | + | term.setCursorPos(1,1) |
160 | - | clear() |
160 | + | if command == "exit" then return end |
161 | - | term.setCursorPos(1,1) |
161 | + | if type(shellcom[command]) == "function" then |
162 | - | if command == "exit" then return end |
162 | + | shellcom[command]() |
163 | - | if type(shellcom[command]) == "function" then |
163 | + | else |
164 | - | shellcom[command]() |
164 | + | print("Not a command") |
165 | - | else |
165 | + | end |
166 | - | print("Not a command") |
166 | + | end |
167 | - | end |
167 | + | |
168 | - | end |
168 | + | |
169 | clear() | |
170 | local url = readtextbox(" Please enter url ") | |
171 | - | clear() |
171 | + | clear() |
172 | - | local url = readtextbox(" Please enter url ") |
172 | + | print("Progress:") |
173 | - | clear() |
173 | + | print("Downloading...") |
174 | - | print("Progress:") |
174 | + | local httpgot = http.get(url) |
175 | - | print("Downloading...") |
175 | + | print("Done") |
176 | - | local httpgot = http.get(url) |
176 | + | local name = readtextbox("Please name the file") |
177 | - | print("Done") |
177 | + | while fs.exists(path..name) do name = createNewName(name,3) end |
178 | - | local name = readtextbox("Please name the file") |
178 | + | local file = fs.open(path..name,"w") |
179 | - | while fs.exists(path..name) do name = createNewName(name,3) end |
179 | + | file.write(httpgot.readAll()) |
180 | - | local file = fs.open(path..name,"w") |
180 | + | file.close() |
181 | - | file.write(httpgot.readAll()) |
181 | + | httpgot.close() |
182 | - | file.close() |
182 | + | clear() |
183 | - | httpgot.close() |
183 | + | buttonbox("File downloaded",{{"OK",colors.gray,colors.white}}) |
184 | - | clear() |
184 | + | |
185 | - | buttonbox("File downloaded",{{"OK",colors.gray,colors.white}}) |
185 | + | local function more(path) --draw ui |
186 | while true do | |
187 | - | local function more(path) |
187 | + | clear() |
188 | - | while true do |
188 | + | print("More actions:") |
189 | - | clear() |
189 | + | term.setTextColor(colors.black) |
190 | - | --draw ui |
190 | + | drawLine(3,"Shell") |
191 | - | print("More actions:") |
191 | + | drawLine(5,"Download file") |
192 | - | term.setTextColor(colors.black) |
192 | + | drawLine(7,"Paste from clipboard") |
193 | - | drawLine(3,"Shell") |
193 | + | drawLine(9,"Paste from pastebin.com") |
194 | - | drawLine(5,"Download file") |
194 | + | drawLine(11,"Open webpage") |
195 | - | drawLine(7,"Paste from clipboard") |
195 | + | drawLine(13,"New file...") |
196 | - | drawLine(9,"Paste from pastebin.com") |
196 | + | drawLine(15,"Go back") |
197 | - | drawLine(11,"Open webpage") |
197 | + | --get event |
198 | - | drawLine(13,"New file...") |
198 | + | local _,_,_,y = os.pullEvent() |
199 | - | drawLine(15,"Go back") |
199 | + | if y == 3 then |
200 | - | --get event |
200 | + | customShell() |
201 | - | local _,_,_,y = os.pullEvent() |
201 | + | elseif y == 5 then |
202 | - | if y == 3 then |
202 | + | downloadfile(path) |
203 | - | customShell() |
203 | + | elseif y == 7 then |
204 | - | elseif y == 5 then |
204 | + | if fs.exists(clipboard) then |
205 | - | downloadfile(path) |
205 | + | if clipboard:sub(#clipboard,#clipboard) == "/" then clipboard = clipboard:sub(1,#clipboard-1) end |
206 | - | elseif y == 7 then |
206 | + | local splitted = split(clipboard,"/") |
207 | - | if fs.exists(clipboard) then |
207 | + | local name = splitted[#splitted] |
208 | - | if clipboard:sub(#clipboard,#clipboard) == "/" then clipboard = clipboard:sub(1,#clipboard-1) end |
208 | + | while fs.exists(path..name) do name = createNewName(name,3) end |
209 | - | local splitted = split(clipboard,"/") |
209 | + | fs.copy(clipboard,path..name) |
210 | - | local name = splitted[#splitted] |
210 | + | buttonbox("Pasted as "..name.." in directory "..path,{{"OK",colors.gray,colors.white}}) |
211 | - | while fs.exists(path..name) do name = createNewName(name,3) end |
211 | + | else |
212 | - | fs.copy(clipboard,path..name) |
212 | + | buttonbox("File not found: "..clipboard,{{"OK",colors.gray,colors.white}}) |
213 | - | buttonbox("Pasted as "..name.." in directory "..path,{{"OK",colors.gray,colors.white}}) |
213 | + | end |
214 | - | else |
214 | + | elseif y == 9 then |
215 | - | buttonbox("File not found: "..clipboard,{{"OK",colors.gray,colors.white}}) |
215 | + | --paste from pastebin |
216 | - | end |
216 | + | local name |
217 | - | elseif y == 9 then |
217 | + | repeat |
218 | - | --paste from pastebin |
218 | + | name = readtextbox("Please enter a filename") |
219 | - | local name |
219 | + | until not fs.exists(path..name) |
220 | - | repeat |
220 | + | local url = readtextbox("Please enter the pastebin URL") |
221 | - | name = readtextbox("Please enter a filename") |
221 | + | term.setCursorPos(1,1) |
222 | - | until not fs.exists(path..name) |
222 | + | term.setBackgroundColor(colors.white) |
223 | - | local url = readtextbox("Please enter the pastebin URL") |
223 | + | term.setTextColor(colors.gray) |
224 | - | term.setCursorPos(1,1) |
224 | + | term.clear() |
225 | - | term.setBackgroundColor(colors.white) |
225 | + | print("Downloading file: ") |
226 | - | term.setTextColor(colors.gray) |
226 | + | shell.run("pastebin get "..url.." "..path..name) |
227 | - | term.clear() |
227 | + | print("Ended. Press any key to continue") |
228 | - | print("Downloading file: ") |
228 | + | os.pullEvent() |
229 | - | shell.run("pastebin get "..url.." "..path..name) |
229 | + | elseif y == 11 then |
230 | - | print("Ended. Press any key to continue") |
230 | + | --open webpage: |
231 | - | os.pullEvent() |
231 | + | local url = readtextbox(" Please enter the url ") |
232 | - | elseif y == 11 then |
232 | + | local httpsth = http.get(url) |
233 | - | --open webpage: |
233 | + | local cont = httpsth.readAll() |
234 | - | local url = readtextbox(" Please enter the url ") |
234 | + | httpsth.close() |
235 | - | local httpsth = http.get(url) |
235 | + | clear() |
236 | - | local cont = httpsth.readAll() |
236 | + | print(cont) |
237 | - | httpsth.close() |
237 | + | os.pullEvent() |
238 | - | clear() |
238 | + | elseif y == 13 then |
239 | - | print(cont) |
239 | + | --new file options |
240 | - | os.pullEvent() |
240 | + | clear() |
241 | - | elseif y == 13 then |
241 | + | local exc = buttonbox("Please choose a program",{{"Paint",colors.yellow,colors.black},{"Custom",colors.yellow,colors.black}}) |
242 | - | --new file options |
242 | + | clear() |
243 | - | clear() |
243 | + | local filename = readtextbox("Please enter a filename") |
244 | - | local exc = buttonbox("Please choose a program",{{"Paint",colors.yellow,colors.black},{"Custom",colors.yellow,colors.black}}) |
244 | + | if not fs.exists(path..filename) then |
245 | - | clear() |
245 | + | if exc == 1 then |
246 | - | local filename = readtextbox("Please enter a filename") |
246 | + | shell.run("paint",path..filename) |
247 | - | if not fs.exists(path..filename) then |
247 | + | else |
248 | - | if exc == 1 then |
248 | + | clear() |
249 | - | shell.run("paint",path..filename) |
249 | + | local prog = readtextbox("Please choose a program "..root) |
250 | - | else |
250 | + | shell.run(prog,path..filename) |
251 | - | clear() |
251 | + | end |
252 | - | local prog = readtextbox("Please choose a program "..root) |
252 | + | end |
253 | - | shell.run(prog,path..filename) |
253 | + | elseif y == 15 then |
254 | - | end |
254 | + | return |
255 | - | end |
255 | + | end |
256 | - | elseif y == 15 then |
256 | + | end |
257 | - | return |
257 | + | |
258 | - | end |
258 | + | |
259 | local scroll = 0 | |
260 | local selected = 0 | |
261 | local items | |
262 | local endprogram = false | |
263 | while not endprogram do | |
264 | repeat | |
265 | items = list(path,scroll,selected) | |
266 | drawMenu(path) | |
267 | - | repeat |
267 | + | if items[selected] ~= nil then popupMenu(fs.isDir(path..items[selected])) end |
268 | - | items = list(path,scroll,selected) |
268 | + | local e,b,x,y = os.pullEvent() |
269 | - | drawMenu(path) |
269 | + | if e == "mouse_click" then |
270 | - | if items[selected] ~= nil then |
270 | + | if items[selected] ~= nil and x > math.floor(w/2) and y < h-1 then |
271 | - | popupMenu(fs.isDir(path..items[selected])) |
271 | + | if fs.isDir(path..items[selected]) then |
272 | - | end |
272 | + | --folder specific |
273 | - | local e,b,x,y = os.pullEvent() |
273 | + | if y == 2 then |
274 | - | if e == "mouse_click" then |
274 | + | path = path .. items[selected] .. "/" |
275 | - | if items[selected] ~= nil and x > math.floor(w/2) and y < h-1 then |
275 | + | selected = 0 |
276 | - | if fs.isDir(path..items[selected]) then |
276 | + | scroll = 0 |
277 | - | --folder specific |
277 | + | history[#history+1] = path |
278 | - | if y == 2 then |
278 | + | elseif y == 3 then |
279 | - | path = path .. items[selected] .. "/" |
279 | + | local con = fs.list(path..items[selected].."/") |
280 | - | selected = 0 |
280 | + | for i=1,#con do |
281 | - | scroll = 0 |
281 | + | local altname = con[i] |
282 | - | history[#history+1] = path |
282 | + | while fs.exists(path..altname) do |
283 | - | end |
283 | + | altname = createNewName(altname) |
284 | - | if y == 3 then |
284 | + | end |
285 | - | local con = fs.list(path..items[selected].."/") |
285 | + | fs.move(path..items[selected].."/"..con[i],path..altname) |
286 | - | for i=1,#con do |
286 | + | end |
287 | - | local altname = con[i] |
287 | + | fs.delete(path..items[selected]) |
288 | - | while fs.exists(path..altname) do altname = createNewName(altname) end |
288 | + | selected = 0 |
289 | - | fs.move(path..items[selected].."/"..con[i],path..altname) |
289 | + | end |
290 | - | end |
290 | + | else |
291 | - | fs.delete(path..items[selected]) |
291 | + | --file specific |
292 | - | selected = 0 |
292 | + | if y == 2 then |
293 | - | end |
293 | + | --edit |
294 | - | else |
294 | + | shell.run("edit",path.. items[selected]) |
295 | - | --file specific |
295 | + | elseif y == 3 then |
296 | - | if y == 2 then |
296 | + | --open with paint |
297 | - | --edit |
297 | + | shell.run("paint",path..items[selected]) |
298 | - | shell.run("edit",path.. items[selected]) |
298 | + | elseif y == 4 then |
299 | - | elseif y == 3 then |
299 | + | --open with... |
300 | - | --open with paint |
300 | + | local program = readtextbox("Please choose a program: "..root) |
301 | - | shell.run("paint",path..items[selected]) |
301 | + | if program ~= nil or program ~= "" then |
302 | - | elseif y == 4 then |
302 | + | shell.run(root..program,path..items[selected]) |
303 | - | --open with... |
303 | + | end |
304 | - | local program = readtextbox("Please choose a program: "..root) |
304 | + | elseif y == 5 then |
305 | - | if program ~= nil or program ~= "" then |
305 | + | term.setBackgroundColor(colors.black) |
306 | - | shell.run(root..program,path..items[selected]) |
306 | + | term.setTextColor(colors.white) |
307 | - | end |
307 | + | term.clear() |
308 | - | elseif y == 5 then |
308 | + | term.setCursorPos(1,1) |
309 | - | term.setBackgroundColor(colors.black) |
309 | + | os.pullEvent() |
310 | - | term.setTextColor(colors.white) |
310 | + | shell.run(path..items[selected]) |
311 | - | term.clear() |
311 | + | sleep(0) |
312 | - | term.setCursorPos(1,1) |
312 | + | print("Press any key to continue") |
313 | - | os.pullEvent() |
313 | + | os.pullEvent("key") |
314 | - | shell.run(path..items[selected]) |
314 | + | elseif y == 6 then |
315 | - | print("Press any key to continue") |
315 | + | local args = readtextbox("Please enter all arguments to run with!") |
316 | - | os.pullEvent() |
316 | + | term.setBackgroundColor(colors.black) |
317 | - | elseif y == 6 then |
317 | + | term.setTextColor(colors.white) |
318 | - | local args = readtextbox("Please enter all arguments to run with!") |
318 | + | term.clear() |
319 | - | term.setBackgroundColor(colors.black) |
319 | + | term.setCursorPos(1,1) |
320 | - | term.setTextColor(colors.white) |
320 | + | os.pullEvent() |
321 | - | term.clear() |
321 | + | shell.run(path..items[selected] .. " " .. args) |
322 | - | term.setCursorPos(1,1) |
322 | + | sleep(0) |
323 | - | os.pullEvent() |
323 | + | print("Press any key to continue") |
324 | - | shell.run(path..items[selected] .. " " .. args) |
324 | + | os.pullEvent("key") |
325 | - | print("Press any key to continue") |
325 | + | end |
326 | - | os.pullEvent() |
326 | + | end |
327 | - | end |
327 | + | --universal |
328 | - | |
328 | + | if y == 7 then |
329 | - | end |
329 | + | local nname = readtextbox("Please enter the new name (empty = cancel)") |
330 | - | --universal |
330 | + | if nname ~= nil or nname ~= "" then |
331 | - | if y == 7 then |
331 | + | if not fs.exists(path..nname) then |
332 | - | local nname = readtextbox("Please enter the new name (empty = cancel)") |
332 | + | fs.move(path..items[selected],path..nname) |
333 | - | if nname ~= nil or nname ~= "" then |
333 | + | clear() |
334 | - | if not fs.exists(path..nname) then |
334 | + | buttonbox("Success",{{"OK",colors.gray,colors.white}}) |
335 | - | fs.move(path..items[selected],path..nname) |
335 | + | selected = 0 |
336 | - | clear() |
336 | + | else |
337 | - | buttonbox("Success",{{"OK",colors.gray,colors.white}}) |
337 | + | clear() |
338 | - | selected = 0 |
338 | + | buttonbox("File already exists",{{"OK",colors.gray,colors.white}}) |
339 | - | else |
339 | + | end |
340 | - | clear() |
340 | + | end |
341 | - | buttonbox("File already exists",{{"OK",colors.gray,colors.white}}) |
341 | + | elseif y == 8 then |
342 | - | end |
342 | + | --move |
343 | - | end |
343 | + | local dest = readtextbox("Move to (empty=cancel) "..root) |
344 | - | end |
344 | + | if dest ~= nil or dest ~= "" then |
345 | - | if y == 8 then |
345 | + | if not fs.exists(root..dest) then |
346 | - | --move |
346 | + | fs.move(path..items[selected],root..dest) |
347 | - | local dest = readtextbox("Move to (empty=cancel) "..root) |
347 | + | clear() |
348 | - | if dest ~= nil or dest ~= "" then |
348 | + | buttonbox("Success",{{"OK",colors.gray,colors.white}}) |
349 | - | if not fs.exists(root..dest) then |
349 | + | else |
350 | - | fs.move(path..items[selected],root..dest) |
350 | + | clear() |
351 | - | clear() |
351 | + | buttonbox("File already exists",{{"OK",colors.gray,colors.white}}) |
352 | - | buttonbox("Success",{{"OK",colors.gray,colors.white}}) |
352 | + | end |
353 | - | else |
353 | + | end |
354 | - | clear() |
354 | + | elseif y == 9 then |
355 | - | buttonbox("File already exists",{{"OK",colors.gray,colors.white}}) |
355 | + | --copy |
356 | - | end |
356 | + | local destination = readtextbox("Copy to (emplty=cancel) "..root) |
357 | - | end |
357 | + | if destination ~= nil or destination ~= "" then |
358 | - | end |
358 | + | if not fs.exists(root..destination) then |
359 | - | if y == 9 then |
359 | + | fs.copy(path..items[selected],root..destination) |
360 | - | --copy |
360 | + | clear() |
361 | - | local destination = readtextbox("Copy to (emplty=cancel) "..root) |
361 | + | buttonbox("Success",{{"OK",colors.gray,colors.white}}) |
362 | - | if destination ~= nil or destination ~= "" then |
362 | + | else |
363 | - | if not fs.exists(root..destination) then |
363 | + | clear() |
364 | - | fs.copy(path..items[selected],root..destination) |
364 | + | buttonbox("File already exists",{{"OK",colors.gray,colors.white}}) |
365 | - | clear() |
365 | + | end |
366 | - | buttonbox("Success",{{"OK",colors.gray,colors.white}}) |
366 | + | end |
367 | - | else |
367 | + | elseif y == 10 then |
368 | - | clear() |
368 | + | --clipboard |
369 | - | buttonbox("File already exists",{{"OK",colors.gray,colors.white}}) |
369 | + | clipboard = path .. items[selected] |
370 | - | end |
370 | + | elseif y == 11 then |
371 | - | end |
371 | + | --delete |
372 | - | end |
372 | + | local bclicked = buttonbox() |
373 | - | if y == 10 then |
373 | + | if bclicked == 1 then |
374 | - | --clipboard |
374 | + | fs.delete(path..items[selected]) |
375 | - | clipboard = path .. items[selected] |
375 | + | clear() |
376 | - | end |
376 | + | buttonbox("File deleted",{{"OK",colors.gray,colors.white}}) |
377 | - | if y == 11 then |
377 | + | selected = 0 |
378 | - | --delete |
378 | + | end |
379 | - | local bclicked = buttonbox() |
379 | + | elseif y == 12 then |
380 | - | if bclicked == 1 then |
380 | + | selected = 0 |
381 | - | fs.delete(path..items[selected]) |
381 | + | end |
382 | - | clear() |
382 | + | break |
383 | - | buttonbox("File deleted",{{"OK",colors.gray,colors.white}}) |
383 | + | end |
384 | - | selected = 0 |
384 | + | if y == h-1 then |
385 | - | end |
385 | + | local npath = readtextbox("Enter new path: (empty=cancel) "..root) |
386 | - | end |
386 | + | if npath ~= nil and npath ~= "" and fs.isDir(root..npath) then |
387 | - | if y == 12 then |
387 | + | path = root .. npath |
388 | - | selected = 0 |
388 | + | selected = 0 |
389 | - | end |
389 | + | scroll = 0 |
390 | - | break |
390 | + | end |
391 | - | end |
391 | + | history[#history+1] = path |
392 | - | if y == h-1 then |
392 | + | elseif y == h then |
393 | - | local npath = readtextbox("Enter new path: (empty=cancel) "..root) |
393 | + | --new |
394 | - | |
394 | + | if x > 1 and x < 7 then |
395 | - | if npath ~= nil and npath ~= "" and fs.isDir(root..npath) then |
395 | + | local name = readtextbox("Filename: (empty=cancel) ") |
396 | - | path = root .. npath |
396 | + | if name ~= nil or name ~= "" then |
397 | - | selected = 0 |
397 | + | if not fs.exists(path..name) then |
398 | - | scroll = 0 |
398 | + | shell.run("edit",path..name) |
399 | - | end |
399 | + | end |
400 | - | history[#history+1] = path |
400 | + | end |
401 | - | elseif y == h then |
401 | + | end |
402 | - | --new |
402 | + | if x > 7 and x < 15 then |
403 | - | if x > 1 and x < 7 then |
403 | + | local name = readtextbox("Directory's name: (empty=cancel)") |
404 | - | local name = readtextbox("Filename: (empty=cancel) ") |
404 | + | if name ~= nil or name ~= "" then |
405 | - | if name ~= nil or name ~= "" then |
405 | + | if not fs.exists(path..name) then |
406 | - | if not fs.exists(path..name) then |
406 | + | fs.makeDir(path..name) |
407 | - | shell.run("edit",path..name) |
407 | + | end |
408 | - | end |
408 | + | end |
409 | - | end |
409 | + | end |
410 | - | end |
410 | + | if x > 15 and x < 22 then |
411 | - | if x > 7 and x < 15 then |
411 | + | --more... |
412 | - | local name = readtextbox("Directory's name: (empty=cancel)") |
412 | + | more(path) |
413 | - | if name ~= nil or name ~= "" then |
413 | + | end |
414 | - | if not fs.exists(path..name) then |
414 | + | if x > 22 and x < 29 then |
415 | - | fs.makeDir(path..name) |
415 | + | path = root |
416 | - | end |
416 | + | history[#history+1] = path |
417 | - | end |
417 | + | selected = 0 |
418 | - | end |
418 | + | scroll = 0 |
419 | - | if x > 15 and x < 22 then |
419 | + | end |
420 | - | --more... |
420 | + | if (x > 29 and x < 36) and fs.exists(root .. home) then |
421 | - | more(path) |
421 | + | path = root .. home |
422 | - | end |
422 | + | history[#history+1] = path |
423 | - | if x > 22 and x < 29 then |
423 | + | selected = 0 |
424 | - | path = root |
424 | + | scroll = 0 |
425 | - | history[#history+1] = path |
425 | + | end |
426 | - | selected = 0 |
426 | + | if x > 36 and x < 43 then |
427 | - | scroll = 0 |
427 | + | while true do |
428 | - | end |
428 | + | history[#history] = nil |
429 | - | if x > 29 and x < 36 then |
429 | + | if #history == 0 then |
430 | - | if fs.exists(root .. home) then |
430 | + | if fs.exists(root..home) then |
431 | - | path = root .. home |
431 | + | path = root..home |
432 | - | history[#history+1] = path |
432 | + | history[1] = path |
433 | - | selected = 0 |
433 | + | elseif fs.exists(root) then |
434 | - | scroll = 0 |
434 | + | path = root |
435 | - | end |
435 | + | history[1] = path |
436 | - | end |
436 | + | else |
437 | - | if x > 36 and x < 43 then |
437 | + | error("Root folder deleted",0) |
438 | - | while true do |
438 | + | end |
439 | - | history[#history] = nil |
439 | + | end |
440 | - | if #history == 0 then |
440 | + | if fs.exists(history[#history]) then |
441 | - | if fs.exists(root..home) then |
441 | + | path = history[#history] |
442 | - | path = root..home |
442 | + | break |
443 | - | history[1] = path |
443 | + | end |
444 | - | elseif fs.exists(root) then |
444 | + | end |
445 | - | path = root |
445 | + | selected = 0 |
446 | - | history[1] = path |
446 | + | end |
447 | - | else |
447 | + | if x > 43 and x < 50 then |
448 | - | error("Root folder deleted",0) |
448 | + | term.setBackgroundColor(colors.black) |
449 | - | end |
449 | + | term.setTextColor(colors.white) |
450 | - | end |
450 | + | term.setCursorPos(1,1) |
451 | - | if fs.exists(history[#history]) then |
451 | + | term.clear() |
452 | - | path = history[#history] |
452 | + | return |
453 | - | break |
453 | + | end |
454 | - | end |
454 | + | elseif e == "mouse_scroll" then |
455 | - | end |
455 | + | if b == 1 and #items - scroll > h-2 then |
456 | - | selected = 0 |
456 | + | scroll = scroll + 1 |
457 | - | end |
457 | + | end |
458 | - | if x > 43 and x < 50 then |
458 | + | if b == -1 and scroll > 0 then |
459 | - | term.setBackgroundColor(colors.black) |
459 | + | scroll = scroll - 1 |
460 | - | term.setTextColor(colors.white) |
460 | + | end |
461 | - | term.setCursorPos(1,1) |
461 | + | else |
462 | - | term.clear() |
462 | + | if y + scroll == selected then |
463 | - | return |
463 | + | if items[selected] ~= nil then |
464 | - | end |
464 | + | if fs.isDir(path..items[selected]) then |
465 | - | else |
465 | + | path = path .. items[selected] .. "/" |
466 | - | if y + scroll == selected then |
466 | + | history[#history+1] = path |
467 | - | if items[selected] ~= nil then |
467 | + | selected = 0 |
468 | - | if fs.isDir(path..items[selected]) then |
468 | + | scroll = 0 |
469 | - | path = path .. items[selected] .. "/" |
469 | + | else |
470 | - | history[#history+1] = path |
470 | + | term.setBackgroundColor(colors.black) |
471 | - | selected = 0 |
471 | + | term.setTextColor(colors.white) |
472 | - | scroll = 0 |
472 | + | term.setCursorPos(1,1) |
473 | - | else |
473 | + | term.clear() |
474 | - | term.setBackgroundColor(colors.black) |
474 | + | shell.run(path..items[selected]) |
475 | - | term.setTextColor(colors.white) |
475 | + | end |
476 | - | term.setCursorPos(1,1) |
476 | + | end |
477 | - | term.clear() |
477 | + | else |
478 | - | shell.run(path..items[selected]) |
478 | + | selected = y + scroll |
479 | - | end |
479 | + | end |
480 | - | end |
480 | + | end |
481 | - | else |
481 | + | end |
482 | - | selected = y + scroll |
482 | + | until true |
483 | - | end |
483 | + |