56 lines
1.6 KiB
Lua

#!/bin/lua
local component = require("component")
local computer = require("computer")
local text = require("text")
local unicode = require("unicode")
if not component.isAvailable("gpu") then
return
end
local gpu = component.gpu
local lines = {_OSVERSION .. ", " .. math.floor(computer.totalMemory() / 1024) .. "KB RAM"}
local maxWidth = unicode.len(lines[1])
local f = io.open("/usr/misc/greetings/".._OSLANGUAGE..".txt")
if f then
local greetings = {}
pcall(function()
for line in f:lines() do table.insert(greetings, line) end
end)
f:close()
local greeting = greetings[math.random(1, #greetings)]
if greeting then
local width = math.max(10, component.gpu.getResolution())
for line in text.wrappedLines(greeting, width - 4, width - 4) do
table.insert(lines, line)
maxWidth = math.max(maxWidth, unicode.len(line))
end
end
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)}}
local xSize, ySize = gpu.getResolution()
local oldBackground = gpu.getBackground()
local oldForeground = gpu.getForeground()
gpu.setBackground(0xcccccc)
gpu.fill(1, 1, xSize, #lines + 2, " ")
io.write(" \n")
io.write("")
gpu.setForeground(0x000000)
io.write(" " .. text.padRight(lines[1], maxWidth) .. " \n")
table.remove(lines, 1)
gpu.setForeground(0x555555)
for _, line in ipairs(lines) do
io.write(" " .. text.padRight(line, maxWidth) .. " \n")
end
io.write(" \n\n")
gpu.setBackground(oldBackground)
gpu.setForeground(oldForeground)