diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2012-06-26 06:53:49 +0000 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2012-06-26 06:53:49 +0000 |
commit | 4fa8ce2e59e4d06dd35355c4e054e07ccede056d (patch) | |
tree | 6a0ab058b34bd50c06036e087e65e48e5b7f45c9 | |
parent | 20ae74c3dd234ffe004388f27340979f1411ad27 (diff) | |
download | awall-4fa8ce2e59e4d06dd35355c4e054e07ccede056d.tar.bz2 awall-4fa8ce2e59e4d06dd35355c4e054e07ccede056d.tar.xz |
pretty output from awall list
-rwxr-xr-x | awall-cli | 4 | ||||
-rw-r--r-- | awall/policy.lua | 24 | ||||
-rw-r--r-- | awall/util.lua | 17 |
3 files changed, 30 insertions, 15 deletions
@@ -103,9 +103,7 @@ require 'awall' policyset = awall.PolicySet.new(params.i, params.I) if mode == 'list' then - for name, status, desc in policyset:list() do - print(name, status, desc) - end + awall.util.printtabular(policyset:list()) os.exit() end diff --git a/awall/policy.lua b/awall/policy.lua index 6570807..f966895 100644 --- a/awall/policy.lua +++ b/awall/policy.lua @@ -220,19 +220,19 @@ end function PolicySet:list() local config, imported = self:load() - local pols = list(self.importdirs) - local i = 0 + local res = {} + + for i, pol in ipairs(list(self.importdirs)) do + local name = pol[1] - return function() - i = i + 1 - if i > #pols then return end - local name = pols[i][1] + local status + if self:findsymlink(name) then status = 'enabled' + elseif util.contains(imported, name) then status = 'required' + else status = 'disabled' end - local status - if self:findsymlink(name) then status = 'enabled' - elseif util.contains(imported, name) then status = 'required' - else status = 'disabled' end + table.insert(res, + {name, status, self:loadJSON(name, pol[2]).description}) + end - return name, status, self:loadJSON(name, pols[i][2]).description - end + return res end diff --git a/awall/util.lua b/awall/util.lua index f5afb37..589ab77 100644 --- a/awall/util.lua +++ b/awall/util.lua @@ -37,3 +37,20 @@ end function extend(tbl1, tbl2) for i, var in listpairs(tbl2) do table.insert(tbl1, var) end end + +function printtabular(tbl) + local colwidth = {} + for i, row in ipairs(tbl) do + for j, col in ipairs(row) do + colwidth[j] = math.max(colwidth[j] or 0, string.len(col)) + end + end + for i, row in ipairs(tbl) do + for j, col in ipairs(row) do + if j > 1 then io.write(' ') end + io.write(col) + for k = 1,colwidth[j] - string.len(col) do io.write(' ') end + end + io.write('\n') + end +end |