mirror of
https://github.com/NeoFlock/neonucleus.git
synced 2025-09-24 17:13:31 +02:00
39 lines
1.5 KiB
Plaintext
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
|