-- @return String containing the memory used for caching in kB
-- @return String containing the memory used for buffering in kB
-- @return String containing the free memory amount in kB
+-- @return String containing the cpu bogomips (number)
function sysinfo()
local cpuinfo = fs.readfile("/proc/cpuinfo")
local meminfo = fs.readfile("/proc/meminfo")
local memcached = tonumber(meminfo:match("\nCached:%s*(%d+)"))
local memfree = tonumber(meminfo:match("MemFree:%s*(%d+)"))
local membuffers = tonumber(meminfo:match("Buffers:%s*(%d+)"))
+ local bogomips = tonumber(cpuinfo:match("BogoMIPS.-:%s*([^\n]+)"))
if not system then
system = nixio.uname().machine
model = cpuinfo:match("cpu model.-:%s*([^\n]+)")
end
- return system, model, memtotal, memcached, membuffers, memfree
+ return system, model, memtotal, memcached, membuffers, memfree, bogomips
end
--- Retrieves the output of the "logread" command.
-- @param ifname String containing the interface name
-- @return A wrapped iwinfo object instance
function wifi.getiwinfo(ifname)
- local iwinfo = require "iwinfo"
+ local stat, iwinfo = pcall(require, "iwinfo")
if ifname then
local c = 0
end)
end
- local t = iwinfo.type(ifname)
- if t then
- local x = iwinfo[t]
- return setmetatable({}, {
- __index = function(t, k)
- if k == "ifname" then
- return ifname
- elseif x[k] then
- return x[k](ifname)
- end
+ local t = stat and iwinfo.type(ifname)
+ local x = t and iwinfo[t] or { }
+ return setmetatable({}, {
+ __index = function(t, k)
+ if k == "ifname" then
+ return ifname
+ elseif x[k] then
+ return x[k](ifname)
end
- })
- end
+ end
+ })
end
end
-- @param iface Wireless interface (optional)
-- @return Table of available channels
function wifi.channels(iface)
- local t = iwinfo.type(iface or "")
+ local stat, iwinfo = pcall(require, "iwinfo")
local cns
- if iface and t and iwinfo[t] then
- cns = iwinfo[t].freqlist(iface)
+
+ if stat then
+ local t = iwinfo.type(iface or "")
+ if iface and t and iwinfo[t] then
+ cns = iwinfo[t].freqlist(iface)
+ end
end
if not cns or #cns == 0 then