testing version of LuaBIOS and OpenOS
people were having issues getting them to work so now we promote consistency
This commit is contained in:
42
data/OpenOS/bin/lshw.lua
Normal file
42
data/OpenOS/bin/lshw.lua
Normal file
@@ -0,0 +1,42 @@
|
||||
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
|
||||
Reference in New Issue
Block a user