1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
-- 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")
-- First, we delete the associated config files
-- 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)
|