Advertisement
ComputerMan123

ComputerCraft RAID [WIP]

Nov 20th, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. --[[
  2. RAID by houseofkraft
  3.  
  4. You need 2 disk drives to use the RAID
  5.  
  6. This program will combine the storage of both of the disks and the HDD into one large filesystem
  7. ]]
  8.  
  9. -- Define old functions to backup
  10. local oldOpen = fs.open
  11. local oldDelete = fs.delete
  12. local oldFree = fs.getFreeSpace
  13. local oldList = fs.list
  14.  
  15. -- Define new functions
  16.  
  17. fs.getFreeSpace = function(path)
  18. return oldFree("/") + oldFree("/disk") + oldFree("/disk2")
  19. end
  20.  
  21. fs.open = function(file, mode)
  22. if not oldFree("/") == 0 and not oldFree("/disk/") == 0 and not oldFree("/disk2/") == 0 then
  23. -- All disks and HDD's are free, Save to HDD
  24. return oldOpen(file, mode)
  25. elseif file:find("rom") then
  26. return oldOpen(file, mode)
  27. elseif oldFree("/") == 0 and not oldFree("/disk/") == 0 and not oldFree("/disk2/") == 0 then
  28. -- HDD is full, Disks are free, Save to first disk
  29. return oldOpen(fs.combine("/disk", file), mode)
  30. elseif oldFree("/") == 0 and oldFree("/disk/") == 0 and not oldFree("/disk2/") == 0 then
  31. -- HDD is full, Only second disk is free, Save to the second disk
  32. return oldOpen(fs.combine("/disk2", file), mode)
  33. end
  34. end
  35.  
  36. fs.list = function(path)
  37. local result = {}
  38. if path == "/" or path == '' then
  39. for k,v in pairs(oldList("/")) do
  40. if v:find("disk") then
  41. -- Do nothing
  42. else
  43. table.insert(result, v)
  44. end
  45. end
  46. for k,v in pairs(oldList("/disk/")) do
  47. table.insert(result, v)
  48. end
  49. for k,v in pairs(oldList("/disk2/")) do
  50. table.insert(result, v)
  51. end
  52. else
  53. for k,v in pairs(oldList(path)) do
  54. table.insert(result, v)
  55. end
  56. end
  57. return result
  58. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement