refactor: move source files to src/ directory
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
-- terminal.readHistory["lua"] = {""}
|
||||
local fs = require("filesystem")
|
||||
local computer = require("computer")
|
||||
local log = require("log")
|
||||
|
||||
local bootTime = computer.uptime()
|
||||
local libList = fs.list("/lib/")
|
||||
local failed = false
|
||||
for _, lib in pairs(libList) do
|
||||
local status, err = xpcall(function()
|
||||
if lib:match("(.+)%.lua") then
|
||||
local name = lib:match("(.+)%.lua")
|
||||
_G[name] = require(name)
|
||||
end
|
||||
end, function(errMsg)
|
||||
return errMsg .. "\n\n" .. debug.traceback()
|
||||
end)
|
||||
if not status then
|
||||
local firstLine = tostring(err):match("^[^\n]*")
|
||||
print(
|
||||
string.format(
|
||||
"\x1b[91mLibrary %s has failed loading:\n │ %s\x1b[0m",
|
||||
lib:match("(.+)%.lua") or lib,
|
||||
firstLine or "unknown error"
|
||||
)
|
||||
)
|
||||
log.lua.error(
|
||||
string.format(
|
||||
'The library located at "%s" has failed loading:\n%s',
|
||||
lib,
|
||||
type(err) ~= "nil" and tostring(err) or "unknown error"
|
||||
)
|
||||
)
|
||||
failed = true
|
||||
end
|
||||
end
|
||||
|
||||
if failed then
|
||||
print(
|
||||
string.format(
|
||||
'\x1b[93mOne or more libraries failed to load. For more information, check the log entries located at "%s".\x1b[0m',
|
||||
tostring(log.lua.logpath or "[unknown]")
|
||||
)
|
||||
)
|
||||
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({readHistoryType = "lua", prefix = "\27[44mlua>\27[0m "})
|
||||
if command == "exit" then
|
||||
coroutine.yield()
|
||||
return
|
||||
elseif command ~= "" then
|
||||
local function runCommand()
|
||||
local func, err = load("return " .. command, "=stdin")
|
||||
local returns = true
|
||||
if not func then
|
||||
func, err = load(command, "=stdin")
|
||||
returns = false
|
||||
end
|
||||
if not func then
|
||||
return print("\x1b[91msyntax error: " .. (err or "unknown error") .. "\x1b[0m")
|
||||
end
|
||||
local res = { func() }
|
||||
if returns then
|
||||
if res and type(res[1]) ~= "nil" then
|
||||
print(table.unpack(res))
|
||||
elseif res and type(res[2]) ~= "nil" then
|
||||
print("nil", table.unpack(res))
|
||||
end
|
||||
end
|
||||
end
|
||||
local result, reason = xpcall(runCommand, function(errMsg)
|
||||
return errMsg .. "\n\n" .. debug.traceback()
|
||||
end)
|
||||
if not result then
|
||||
print("\27[91m" .. reason .. "\27[0m")
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user