summaryrefslogtreecommitdiffstats
path: root/config/delete_device.lua
blob: ad908ed6545fc40c5b42936823c1fef758218f1c (plain)
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
-- 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)