DraRex368

ROBCO Files

Feb 7th, 2026
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.54 KB | None | 0 0
  1. --========================================================--
  2. --   ROBCO INDUSTRIES (TM) UNIFIED OPERATING SYSTEM
  3. --   FILE MODULE — FILE & DISK OPERATIONS
  4. --========================================================--
  5.  
  6. local files = {}
  7.  
  8. local ui = require("robco/ui")
  9.  
  10. ------------------------------------------------------------
  11. -- LIST FILES
  12. ------------------------------------------------------------
  13. function files.listFiles()
  14.     ui.statusLine("LISTING FILES...")
  15.     local list = fs.list("")
  16.     local y = 9
  17.  
  18.     for _, f in ipairs(list) do
  19.         term.setCursorPos(3, y)
  20.         print(f)
  21.         y = y + 1
  22.     end
  23. end
  24.  
  25. ------------------------------------------------------------
  26. -- CREATE NEW FILE
  27. ------------------------------------------------------------
  28. function files.newFile(name)
  29.     if not name then
  30.         ui.statusLine("USAGE: new <filename>")
  31.         return
  32.     end
  33.  
  34.     if fs.exists(name) then
  35.         ui.statusLine("FILE EXISTS")
  36.         return
  37.     end
  38.  
  39.     ui.statusLine("CREATING FILE: " .. name)
  40.     term.setCursorPos(3, 9)
  41.     print("ENTER TEXT. END WITH '.'")
  42.  
  43.     local lines = {}
  44.     while true do
  45.         term.setCursorPos(3, 10 + #lines)
  46.         local line = read()
  47.         if line == "." then break end
  48.         table.insert(lines, line)
  49.     end
  50.  
  51.     local h = fs.open(name, "w")
  52.     for _, l in ipairs(lines) do
  53.         h.writeLine(l)
  54.     end
  55.     h.close()
  56.  
  57.     ui.statusLine("FILE SAVED")
  58. end
  59.  
  60. ------------------------------------------------------------
  61. -- EDIT FILE
  62. ------------------------------------------------------------
  63. function files.editFile(name)
  64.     if not name then
  65.         ui.statusLine("USAGE: edit <filename>")
  66.         return
  67.     end
  68.  
  69.     if not fs.exists(name) then
  70.         ui.statusLine("FILE NOT FOUND")
  71.         return
  72.     end
  73.  
  74.     ui.statusLine("EDITING FILE: " .. name)
  75.     term.setCursorPos(3, 9)
  76.     print("CURRENT CONTENTS:")
  77.  
  78.     local h = fs.open(name, "r")
  79.     local contents = h.readAll()
  80.     h.close()
  81.  
  82.     term.setCursorPos(3, 10)
  83.     print(contents or "")
  84.     term.setCursorPos(3, 12)
  85.     print("ENTER NEW CONTENT. END WITH '.'")
  86.  
  87.     local lines = {}
  88.     while true do
  89.         term.setCursorPos(3, 13 + #lines)
  90.         local line = read()
  91.         if line == "." then break end
  92.         table.insert(lines, line)
  93.     end
  94.  
  95.     local h2 = fs.open(name, "w")
  96.     for _, l in ipairs(lines) do
  97.         h2.writeLine(l)
  98.     end
  99.     h2.close()
  100.  
  101.     ui.statusLine("FILE UPDATED")
  102. end
  103.  
  104. ------------------------------------------------------------
  105. -- DELETE FILE
  106. ------------------------------------------------------------
  107. function files.deleteFile(name)
  108.     if not name then
  109.         ui.statusLine("USAGE: delete <filename>")
  110.         return
  111.     end
  112.  
  113.     if fs.exists(name) then
  114.         fs.delete(name)
  115.         ui.statusLine("FILE DELETED")
  116.     else
  117.         ui.statusLine("FILE NOT FOUND")
  118.     end
  119. end
  120.  
  121. ------------------------------------------------------------
  122. -- DISK HELPERS
  123. ------------------------------------------------------------
  124. local function getDiskSide()
  125.     for _, side in ipairs({"left","right","top","bottom","front","back"}) do
  126.         if disk.isPresent(side) then
  127.             return side
  128.         end
  129.     end
  130.     return nil
  131. end
  132.  
  133. ------------------------------------------------------------
  134. -- SAVE FILE TO DISK
  135. ------------------------------------------------------------
  136. function files.saveToDisk(name)
  137.     if not name then
  138.         ui.statusLine("USAGE: disk save <file>")
  139.         return
  140.     end
  141.  
  142.     if not fs.exists(name) then
  143.         ui.statusLine("FILE NOT FOUND")
  144.         return
  145.     end
  146.  
  147.     local side = getDiskSide()
  148.     if not side then
  149.         ui.statusLine("NO DISK INSERTED")
  150.         return
  151.     end
  152.  
  153.     local mount = disk.getMountPath(side)
  154.     fs.copy(name, mount .. "/" .. name)
  155.  
  156.     ui.statusLine("FILE SAVED TO DISK")
  157. end
  158.  
  159. ------------------------------------------------------------
  160. -- LOAD FILE FROM DISK
  161. ------------------------------------------------------------
  162. function files.loadFromDisk(name)
  163.     if not name then
  164.         ui.statusLine("USAGE: disk load <file>")
  165.         return
  166.     end
  167.  
  168.     local side = getDiskSide()
  169.     if not side then
  170.         ui.statusLine("NO DISK INSERTED")
  171.         return
  172.     end
  173.  
  174.     local mount = disk.getMountPath(side)
  175.     local path = mount .. "/" .. name
  176.  
  177.     if not fs.exists(path) then
  178.         ui.statusLine("FILE NOT FOUND ON DISK")
  179.         return
  180.     end
  181.  
  182.     fs.copy(path, name)
  183.     ui.statusLine("FILE LOADED")
  184. end
  185.  
  186. return files
Advertisement
Add Comment
Please, Sign In to add comment