local kernelArgs={...} local apis=kernelArgs[1] local drivers=kernelArgs[2] local log=kernelArgs[3] local driver={} local disks={} local driverutil=kernelArgs[4] driver.type = "disk" driver.name = "CC:Disks" driver.version = "1.0.0" driver.apiVersion = 1 driver.description = "Driver for CC:Tweaked disks" driver.arch = "cc" driver.api = {} local function abs(path) if path:sub(1,1)~="/" then path="/"..path end return path end local function newDisk(root) root="/"..root return { readAllText=function(path) local file=apis.fs.open(root..abs(path),"r") local text=file.readAll() file.close() return text end, writeAllText=function(path, content) local file=apis.fs.open(root..abs(path),"w") file.write(content) file.close() end, list=function(path) return apis.fs.list(root..abs(path)) end, delete=function(path) return apis.fs.delete(root..abs(path)) end, makeDirectory=function(path) return apis.fs.makeDir(root..abs(path)) end, makeFile=function(path) local file=apis.fs.open(root..abs(path),"w") file.close() end, directoryExists=function(path) return apis.fs.exists(root..abs(path)) and apis.fs.isDir(root..abs(path)) end, fileExists=function(path) return apis.fs.exists(root..abs(path)) and not apis.fs.isDir(root..abs(path)) end } end local function refreshDisks(peripheral) local tmp2={} tmp2["disk"]=newDisk("disk") for i,v in ipairs(peripheral.api.getNames()) do if peripheral.api.isType(v, "drive") then local p=peripheral.api.wrap(v) if p.isDiskPresent() then if p.getMountPath()~="disk" then tmp2["disk_"..p.getID()] = newDisk(p.getMountPath()) end end end end disks=tmp2 return true end function driver.init() local peripheral=driverutil.getFirst("component") refreshDisks(peripheral) end function driver.api.list() local tmp={} for i,v in pairs(disks) do tmp[#tmp+1]={id=i, obj=v} end local i=0 return function() i=i+1 if tmp[i]==nil then return end return tmp[i].id, tmp[i].obj end end function driver.main() while true do refreshDisks() sleep(5) end end drivers[#drivers+1] = driver