From fe76518e48b5aab93886fedcd5993d384238f645 Mon Sep 17 00:00:00 2001 From: jahead Date: Sun, 22 Sep 2013 18:17:02 -0300 Subject: [PATCH] drop nixio dependency from bat-hosts.lua --- alfred/files/bat-hosts.lua | 43 +++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/alfred/files/bat-hosts.lua b/alfred/files/bat-hosts.lua index 0d4333a..0d5d0b6 100644 --- a/alfred/files/bat-hosts.lua +++ b/alfred/files/bat-hosts.lua @@ -1,23 +1,50 @@ #!/usr/bin/lua -local nxo = require "nixio" - local type_id = 64 -- bat-hosts +function get_hostname() + local hostfile = io.open("/proc/sys/kernel/hostname", "r") + local ret_string = hostfile:read("*a") + ret_string = string.gsub(ret_string, "\n", "") + hostfile:close() + return ret_string +end + +function get_interfaces_names() + local i, ret + i = 0 + ret = {} + for name in io.popen("ls -1 /sys/class/net/"):lines() do + if name ~= "lo" then + i = i + 1 + ret[i] = name + end + end + + return ret +end + +function get_interface_address(name) + local addressfile = io.open("/sys/class/net/"..name.."/address", "r") + local ret_string = addressfile:read("*a") + ret_string = string.gsub(ret_string, "\n", "") + addressfile:close() + return ret_string +end + + local function generate_bat_hosts() -- get hostname and interface macs/names -- then return a table containing valid bat-hosts lines local n, i local ifaces, ret = {}, {} - local hostname = nxo.uname().nodename + local hostname = get_hostname() -- skip loopback ("lo") mac (00:00:00:00:00:00) - for n, i in ipairs(nxo.getifaddrs()) do - if i.addr:match("%x%x:%x%x:%x%x:%x%x:%x%x:%x%x") - and not i.addr:match("00:00:00:00:00:00") then - ifaces[i.addr] = i.name:match("[^:]+") - end + for n, i in ipairs(get_interfaces_names()) do + local address = get_interface_address(i) + ifaces[address] = i end for mac, iname in pairs(ifaces) do