diff options
-rw-r--r-- | awall/policy.lua | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/awall/policy.lua b/awall/policy.lua index af00ace..a680052 100644 --- a/awall/policy.lua +++ b/awall/policy.lua @@ -74,13 +74,21 @@ end function PolicySet:loadJSON(name, fname) - local file = fname and io.open(fname) or open(name, self.importdirs) + local file + if fname then + file = io.open(fname) + else + file, fname = open(name, self.importdirs) + end if not file then error('Import failed: '..name) end local data = '' for line in file:lines() do data = data..line end file:close() - return json.decode(data) + + local success, res = pcall(json.decode, data) + if success then return res end + error(res..' while parsing '..fname) end |