Files
LeonOS/data/computercraft/lua/rom/programs/craftos.lua
Leonmmcoset 90a901f58e feat: 初始提交 LeonOS 实现
添加 LeonOS 的基本实现,包括:
- 核心 API 模块(colors, disk, gps, keys, multishell, parallel, rednet, redstone, settings, vector)
- 命令行程序(about, alias, bg, clear, copy, delete, edit, fg, help, list, lua, mkdir, move, paint, peripherals, programs, reboot, set, shutdown, threads)
- 系统启动脚本和包管理
- 文档(README.md, LICENSE)
- 开发工具(devbin)和更新程序

实现功能:
- 完整的线程管理系统
- 兼容 ComputerCraft 的 API 设计
- 改进的 shell 和命令补全系统
- 多标签终端支持
- 设置管理系统
2025-08-31 16:54:18 +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("/rc/programs/shell.lua", "t", nEnv)
if not func then error(err, 0) end
func()