-- bundler. public domain. -- https://citrons.xyz/git/cc-bundler.git local cc_host = {} function cc_host.error(msg) printError(msg) end function cc_host.list_dir(path) local list = fs.list(shell.resolve(path)) local i = 0 return function() i = i + 1 return list[i] end end function cc_host.is_dir(path) return fs.isDir(shell.resolve(path)) end function cc_host.read(path) local file = assert(fs.open(shell.resolve(path), "r")) local data = assert(file.readAll()) file.close() return data end function cc_host.write(path, content) local file = assert(fs.open(shell.resolve(path), "w")) file.write(content) file.close() end local normal_host = {} function normal_host.error(msg) io.stderr:write(tostring(msg).."\n") os.exit(-1) end function normal_host.list_dir(path) return require "lfs".dir(path) end function normal_host.is_dir(path) return require "lfs".attributes(path).mode == "directory" end function normal_host.read(path) local file = assert(io.open(path, "r")) local data = assert(file:read "a") file:close() return data end function normal_host.write(path, content) local file = assert(io.open(path, "w")) assert(file:write(content)) file:close() end if _HOST and _HOST:match "ComputerCraft" then return cc_host else return normal_host end