Add some error handling

main
Micke Nordin 1 month ago
parent f4c9ccf630
commit 5f821db800

@ -53,12 +53,21 @@ local _parse_record = function(rec)
for _, v in ipairs(rec) do
if v ~= nil and v ~= "" then
local key = v:match("%w+"):lower()
if vim.tbl_contains({ "zone", "rtype", "name", "data", "ttl" }, key) then
record[key] = v:gsub("%w+%:%s", "")
end
end
end
return record
end
local _validate_record = function(record)
if record.zone == nil or record.rtype == nil or record.name == nil or record.data == nil then
return false
end
return true
end
local M = {}
M.add = function(_)
local tempfile = vim.fn.tempname()
@ -82,6 +91,7 @@ M.add = function(_)
callback = function(_)
local new = vim.api.nvim_buf_get_lines(buffer, 0, -1, false)
local record = _parse_record(new)
if _validate_record(record) then
local command = "knotctl add -z " .. record.zone ..
" -t " .. record.ttl ..
" -n " .. record.name ..
@ -91,6 +101,9 @@ M.add = function(_)
if choice == 1 then
log.info(vim.fn.system(command))
end
else
log.error("Invalid record")
end
end
})
end
@ -182,6 +195,7 @@ M.update = function(opts)
end
end
if did_update then
if _validate_record(cleannew) and _validate_record(cleanold) then
local command = "knotctl update -z " .. cleanold.zone ..
" -t " .. cleanold.ttl ..
" -n " .. cleanold.name ..
@ -192,6 +206,9 @@ M.update = function(opts)
if choice == 1 then
log.info(vim.fn.system(command))
end
else
log.error("Invalid record")
end
end
end
end

Loading…
Cancel
Save