87d0e6bbcb
the lua shell (or lua app) before this update was loading all the system libraries for every command, which makes them slower to actually start running (about 1.5s of delay). in this update, lua starts loading all the libraries when the shell starts.
36 lines
1.1 KiB
Lua
36 lines
1.1 KiB
Lua
-- terminal.readHistory["lua"] = {""}
|
|
local fs = require("filesystem")
|
|
local computer = require("computer")
|
|
|
|
local bootTime = computer.uptime()
|
|
local libList = fs.list("/lib/")
|
|
for _, lib in pairs(libList) do
|
|
if lib:match("(.+)%.lua") then
|
|
local name = lib:match("(.+)%.lua")
|
|
_G[name] = require(name)
|
|
end
|
|
end
|
|
|
|
print(string.format("\27[37mLoaded %d libraries in %.2f seconds\27[0m",#libList,computer.uptime()-bootTime))
|
|
print(string.format("\27[44m%s\27[0m shell",_VERSION))
|
|
print('Type "exit" to exit.')
|
|
|
|
while true do
|
|
local command = terminal.read("lua", "\27[44mlua>\27[0m ")
|
|
if command == "exit" then
|
|
return
|
|
elseif command~="" then
|
|
local function runCommand()
|
|
local func = load("return "..command,"=stdin") or load(command,"=stdin")
|
|
local res = {assert(func)()}
|
|
if res and (type(res[1])~="nil" or type(res[2])~="nil") then print(table.unpack(res)) end
|
|
end
|
|
local result, reason = xpcall(runCommand, function(errMsg)
|
|
return errMsg .. "\n\n" .. debug.traceback()
|
|
end)
|
|
if not result then
|
|
print("\27[91m" .. reason)
|
|
end
|
|
end
|
|
end
|