diff options
Diffstat (limited to 'config/delete_device.lua')
-rw-r--r-- | config/delete_device.lua | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/config/delete_device.lua b/config/delete_device.lua new file mode 100644 index 0000000..ad908ed --- /dev/null +++ b/config/delete_device.lua @@ -0,0 +1,44 @@ +-- This is the script run after deleting a device (and all of its params) +local functions, olddevice, oldparams = ... + +local path = "PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin " + +APP.logevent("got to delete_device script") + +-- We'll handle the deleting of the device by handling the resulting changing of the params +-- First, have to create a new set of params (with blank extensions) +local duplicatestructure +duplicatestructure = function(value, saved) + saved = saved or {} + if type(value) == "table" then + if saved[value] then + return saved[value] + else + local output = {} + saved[value] = output + for k,v in pairs(value) do + output[k] = duplicatestructure(v, saved) + end + return output + end + else + return value + end +end + +local params = duplicatestructure(oldparams) +for name,val in pairs(params.value) do + if string.match(name, "^reg") then + params.value[name].value.extension.value = "" + end +end + +-- Then call the other script +local env = {} +setmetatable (env, {__index = _G}) +-- loadfile loads into the global environment +-- so we set env 0, not env 1 +setfenv (0, env) +local f = loadfile("/etc/provisioning/update_device_params.lua") +if (f) then f(functions, params, oldparams) end +setfenv (0, _G) |