aboutsummaryrefslogtreecommitdiffstats
path: root/awall-cli
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2012-06-26 06:17:43 +0000
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2012-06-26 06:17:43 +0000
commit20ae74c3dd234ffe004388f27340979f1411ad27 (patch)
tree0a7587db0e039a04f50bb80f9a09cf31b09ecf93 /awall-cli
parent6b7e523054e9d4a34f3074c9cb8e268d1ebdfe53 (diff)
downloadawall-20ae74c3dd234ffe004388f27340979f1411ad27.tar.bz2
awall-20ae74c3dd234ffe004388f27340979f1411ad27.tar.xz
command for dumping variable and zone definitions
Diffstat (limited to 'awall-cli')
-rwxr-xr-xawall-cli27
1 files changed, 26 insertions, 1 deletions
diff --git a/awall-cli b/awall-cli
index 74d55e0..020f286 100755
--- a/awall-cli
+++ b/awall-cli
@@ -50,6 +50,9 @@ List optional policies:
enabled by the user but is in use because it is required by
another policy which is in use.
+Dump variable and zone definitions:
+ awall dump
+
]])
os.exit()
end
@@ -91,7 +94,7 @@ end
require 'awall.util'
if not awall.util.contains({'translate', 'activate', 'fallback',
- 'enable', 'disable', 'list'},
+ 'enable', 'disable', 'list', 'dump'},
mode) then help() end
@@ -115,8 +118,30 @@ if awall.util.contains({'disable', 'enable'}, mode) then
os.exit()
end
+
config = policyset:load()
+if mode == 'dump' then
+ require 'json'
+
+ function dump(title, data)
+ print(title..':')
+ local lines = {}
+ for k, v in pairs(data) do
+ table.insert(lines, k..' = '..json.encode(v))
+ end
+ table.sort(lines)
+ for i, line in ipairs(lines) do print(line) end
+ print()
+ end
+
+ dump('Variables', config:variables())
+ config = config:expand()
+ dump('Zones', config.zone)
+
+ os.exit()
+end
+
require 'awall.iptables'
awall.loadmodules(basedir)