--:Minify:-- local kernel = ... local cache = {} local searchpaths = { "/lib/?.lua", "/lib/?", "/usr/lib/?.lua", "/usr/lib/?", "/usr/local/lib/?.lua", "/usr/local/lib/?", "?.lua", "?" } function require(module,...) if cache[module] then return cache[module] end local modpath = module:gsub("%.", "/") local failed = {} for _, path in ipairs(searchpaths) do local full_path = string.gsub(path, "%?", modpath) if full_path:sub(1,1)~="/" then full_path=kernel.currentTask.cwd..full_path end if kernel.vfs.exists(full_path) then if kernel.vfs.type(full_path)=="directory" then full_path = full_path .. "/init" end if kernel.vfs.exists(full_path) then local handle = kernel.vfs.open(full_path, "r") local file_content = kernel.vfs.read(handle, 1024 * 1024 * 4) kernel.vfs.close(handle) return assert(load(file_content, full_path, "t", kernel._U))(...) else table.insert(failed, full_path) end else table.insert(failed, full_path) end end error("Module not found: " .. module .. " (searched paths: " .. table.concat(failed, ", ") .. ")") end