IonutParau 687cfebd00 testing version of LuaBIOS and OpenOS
people were having issues getting them to work so now we promote consistency
2025-06-28 20:41:49 +02:00

39 lines
1.5 KiB
Plaintext

local component = require("component")
local computer = require("computer")
local unicode = require("unicode")
local tty = require("tty")
local f = io.open("/usr/misc/greetings.txt")
local lines = {_OSVERSION .. " (" .. math.floor(computer.totalMemory() / 1024) .. "k RAM)"}
local greeting = ""
if f then
local greetings = {}
pcall(function()
for line in f:lines() do table.insert(greetings, line) end
end)
f:close()
greeting = greetings[math.random(1, math.max(#greetings, 1))] or ""
end
local width = math.min(#greeting, (tty.getViewport() or math.huge) - 5)
local maxLine = #lines[1]
while #greeting > 0 do
local si, ei = greeting:sub(1, width):find("%s%S*$")
local line = #greeting <= width and greeting or greeting:sub(1, si or width)
lines[#lines + 1] = line
maxLine = math.max(maxLine, #line)
greeting = greeting:sub(#line + 1)
end
local borders = {{unicode.char(0x2552), unicode.char(0x2550), unicode.char(0x2555)},
{unicode.char(0x2502), nil, unicode.char(0x2502)},
{unicode.char(0x2514), unicode.char(0x2500), unicode.char(0x2518)}}
io.write(borders[1][1], string.rep(borders[1][2], maxLine + 2), borders[1][3], "\n")
for _,line in ipairs(lines) do
io.write(borders[2][1], " ", line, (" "):rep(maxLine - #line + 1), borders[2][3], " \n")
end
io.write(borders[3][1] .. string.rep(borders[3][2], maxLine + 2) .. borders[3][3] .. "\n")
if require("filesystem").get("home").isReadOnly() then
io.write("\27[33mNote: Your home directory is readonly. Run `install` and reboot.\27[m\n")
end