Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --========================================================--
- -- ROBCO INDUSTRIES (TM) UNIFIED OPERATING SYSTEM
- -- FILE MODULE — FILE & DISK OPERATIONS
- --========================================================--
- local files = {}
- local ui = require("robco/ui")
- ------------------------------------------------------------
- -- LIST FILES
- ------------------------------------------------------------
- function files.listFiles()
- ui.statusLine("LISTING FILES...")
- local list = fs.list("")
- local y = 9
- for _, f in ipairs(list) do
- term.setCursorPos(3, y)
- print(f)
- y = y + 1
- end
- end
- ------------------------------------------------------------
- -- CREATE NEW FILE
- ------------------------------------------------------------
- function files.newFile(name)
- if not name then
- ui.statusLine("USAGE: new <filename>")
- return
- end
- if fs.exists(name) then
- ui.statusLine("FILE EXISTS")
- return
- end
- ui.statusLine("CREATING FILE: " .. name)
- term.setCursorPos(3, 9)
- print("ENTER TEXT. END WITH '.'")
- local lines = {}
- while true do
- term.setCursorPos(3, 10 + #lines)
- local line = read()
- if line == "." then break end
- table.insert(lines, line)
- end
- local h = fs.open(name, "w")
- for _, l in ipairs(lines) do
- h.writeLine(l)
- end
- h.close()
- ui.statusLine("FILE SAVED")
- end
- ------------------------------------------------------------
- -- EDIT FILE
- ------------------------------------------------------------
- function files.editFile(name)
- if not name then
- ui.statusLine("USAGE: edit <filename>")
- return
- end
- if not fs.exists(name) then
- ui.statusLine("FILE NOT FOUND")
- return
- end
- ui.statusLine("EDITING FILE: " .. name)
- term.setCursorPos(3, 9)
- print("CURRENT CONTENTS:")
- local h = fs.open(name, "r")
- local contents = h.readAll()
- h.close()
- term.setCursorPos(3, 10)
- print(contents or "")
- term.setCursorPos(3, 12)
- print("ENTER NEW CONTENT. END WITH '.'")
- local lines = {}
- while true do
- term.setCursorPos(3, 13 + #lines)
- local line = read()
- if line == "." then break end
- table.insert(lines, line)
- end
- local h2 = fs.open(name, "w")
- for _, l in ipairs(lines) do
- h2.writeLine(l)
- end
- h2.close()
- ui.statusLine("FILE UPDATED")
- end
- ------------------------------------------------------------
- -- DELETE FILE
- ------------------------------------------------------------
- function files.deleteFile(name)
- if not name then
- ui.statusLine("USAGE: delete <filename>")
- return
- end
- if fs.exists(name) then
- fs.delete(name)
- ui.statusLine("FILE DELETED")
- else
- ui.statusLine("FILE NOT FOUND")
- end
- end
- ------------------------------------------------------------
- -- DISK HELPERS
- ------------------------------------------------------------
- local function getDiskSide()
- for _, side in ipairs({"left","right","top","bottom","front","back"}) do
- if disk.isPresent(side) then
- return side
- end
- end
- return nil
- end
- ------------------------------------------------------------
- -- SAVE FILE TO DISK
- ------------------------------------------------------------
- function files.saveToDisk(name)
- if not name then
- ui.statusLine("USAGE: disk save <file>")
- return
- end
- if not fs.exists(name) then
- ui.statusLine("FILE NOT FOUND")
- return
- end
- local side = getDiskSide()
- if not side then
- ui.statusLine("NO DISK INSERTED")
- return
- end
- local mount = disk.getMountPath(side)
- fs.copy(name, mount .. "/" .. name)
- ui.statusLine("FILE SAVED TO DISK")
- end
- ------------------------------------------------------------
- -- LOAD FILE FROM DISK
- ------------------------------------------------------------
- function files.loadFromDisk(name)
- if not name then
- ui.statusLine("USAGE: disk load <file>")
- return
- end
- local side = getDiskSide()
- if not side then
- ui.statusLine("NO DISK INSERTED")
- return
- end
- local mount = disk.getMountPath(side)
- local path = mount .. "/" .. name
- if not fs.exists(path) then
- ui.statusLine("FILE NOT FOUND ON DISK")
- return
- end
- fs.copy(path, name)
- ui.statusLine("FILE LOADED")
- end
- return files
Advertisement
Add Comment
Please, Sign In to add comment