Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- RAID by houseofkraft
- You need 2 disk drives to use the RAID
- This program will combine the storage of both of the disks and the HDD into one large filesystem
- ]]
- -- Define old functions to backup
- local oldOpen = fs.open
- local oldDelete = fs.delete
- local oldFree = fs.getFreeSpace
- local oldList = fs.list
- -- Define new functions
- fs.getFreeSpace = function(path)
- return oldFree("/") + oldFree("/disk") + oldFree("/disk2")
- end
- fs.open = function(file, mode)
- if not oldFree("/") == 0 and not oldFree("/disk/") == 0 and not oldFree("/disk2/") == 0 then
- -- All disks and HDD's are free, Save to HDD
- return oldOpen(file, mode)
- elseif file:find("rom") then
- return oldOpen(file, mode)
- elseif oldFree("/") == 0 and not oldFree("/disk/") == 0 and not oldFree("/disk2/") == 0 then
- -- HDD is full, Disks are free, Save to first disk
- return oldOpen(fs.combine("/disk", file), mode)
- elseif oldFree("/") == 0 and oldFree("/disk/") == 0 and not oldFree("/disk2/") == 0 then
- -- HDD is full, Only second disk is free, Save to the second disk
- return oldOpen(fs.combine("/disk2", file), mode)
- end
- end
- fs.list = function(path)
- local result = {}
- if path == "/" or path == '' then
- for k,v in pairs(oldList("/")) do
- if v:find("disk") then
- -- Do nothing
- else
- table.insert(result, v)
- end
- end
- for k,v in pairs(oldList("/disk/")) do
- table.insert(result, v)
- end
- for k,v in pairs(oldList("/disk2/")) do
- table.insert(result, v)
- end
- else
- for k,v in pairs(oldList(path)) do
- table.insert(result, v)
- end
- end
- return result
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement