mirror of
https://github.com/NeoFlock/neonucleus.git
synced 2025-09-24 09:03:32 +02:00
43 lines
1.2 KiB
Lua
43 lines
1.2 KiB
Lua
local computer = require("computer")
|
|
local shell = require("shell")
|
|
local text = require("text")
|
|
|
|
local args, options = shell.parse(...)
|
|
|
|
local devices = computer.getDeviceInfo()
|
|
local columns = {}
|
|
|
|
if not next(options, nil) then
|
|
options.t = true
|
|
options.d = true
|
|
options.p = true
|
|
end
|
|
if options.t then table.insert(columns, "Class") end
|
|
if options.d then table.insert(columns, "Description") end
|
|
if options.p then table.insert(columns, "Product") end
|
|
if options.v then table.insert(columns, "Vendor") end
|
|
if options.c then table.insert(columns, "Capacity") end
|
|
if options.w then table.insert(columns, "Width") end
|
|
if options.s then table.insert(columns, "Clock") end
|
|
|
|
local m = {}
|
|
for address, info in pairs(devices) do
|
|
for col, name in ipairs(columns) do
|
|
m[col] = math.max(m[col] or 1, (info[name:lower()] or ""):len())
|
|
end
|
|
end
|
|
|
|
io.write(text.padRight("Address", 10))
|
|
for col, name in ipairs(columns) do
|
|
io.write(text.padRight(name, m[col] + 2))
|
|
end
|
|
io.write("\n")
|
|
|
|
for address, info in pairs(devices) do
|
|
io.write(text.padRight(address:sub(1, 5).."...", 10))
|
|
for col, name in ipairs(columns) do
|
|
io.write(text.padRight(info[name:lower()] or "", m[col] + 2))
|
|
end
|
|
io.write("\n")
|
|
end
|