Files
LeonOS/data/computercraft/lua/rom/programs/craftos.lua
Leonmmcoset 976769de2d refactor: 将默认路径从/rc更改为/leonos
更新所有相关文件中的路径引用,统一使用/leonos作为系统目录。同时更新版本号至0.1.7。
2025-09-01 11:03:43 +08:00

59 lines
1.3 KiB
Lua

-- LeonOS compatibility, in theory
local rc = require("rc")
local settings = require("settings")
if not settings.get("bios.compat_mode") then
error("compatibility mode is disabled", 0)
end
if os.version then
error("you are already in compatibility mode", 0)
end
local libs = {
"peripheral", "fs", "settings", "http", "term", "colors", "multishell",
"keys", "parallel", "shell", "textutils", "window", "paintutils"
}
local move = {
"queueEvent", "startTimer", "cancelTimer", "setAlarm", "cancelAlarm", "getComputerID",
"computerID", "getComputerLabel", "setComputerLabel", "computerLabel", "day", "epoch",
"pullEvent", "sleep"
}
local nEnv = setmetatable({}, {__index=_G})
nEnv.os = setmetatable({}, {__index=os})
for i=1, #libs, 1 do
nEnv[libs[i]] = select(2, pcall(require, libs[i]))
end
for i=1, #move do
nEnv.os[move[i]] = rc[move[i]]
end
function nEnv.printError(text)
io.stderr:write(text, "\n")
end
nEnv.write = rc.write
nEnv.unpack = table.unpack
if rc.lua51 then
for k, v in pairs(rc.lua51) do
nEnv[k] = v
end
end
nEnv.read = nEnv.term.read
nEnv.sleep = nEnv.os.sleep
function nEnv.os.version()
return "LeonOS 1.0 ALpha 1"
end
local func, err = loadfile("/leonos/programs/shell.lua", "t", nEnv)
if not func then error(err, 0) end
func()