-- ------ hotplug script configuration ------ -- fs = require "nixio.fs" sys = require "luci.sys" ut = require "luci.util" script = "/etc/hotplug.d/iface/16-mwancustom" scriptBackup = "/etc/hotplug.d/iface/16-mwancustombak" if luci.http.formvalue("cbid.luci.1._restorebak") then -- restore button has been clicked luci.http.redirect(luci.dispatcher.build_url("admin/network/mwan/advanced/hotplugscript") .. "?restore=yes") elseif luci.http.formvalue("restore") == "yes" then -- restore script from backup os.execute("cp -f " .. scriptBackup .. " " .. script) end m5 = SimpleForm("luci", nil) m5:append(Template("mwan/advanced_hotplugscript")) -- highlight current tab f = m5:section(SimpleSection, nil, translate("This section allows you to modify the contents of /etc/hotplug.d/iface/16-mwancustom
" .. "This is useful for running system commands and/or scripts based on interface ifup or ifdown hotplug events

" .. "Notes:
" .. "The first line of the script must be "#!/bin/sh" without quotes
" .. "Lines beginning with # are comments and are not executed

" .. "Available variables:
" .. "$ACTION is the hotplug event (ifup, ifdown)
" .. "$INTERFACE is the interface name (wan1, wan2, etc.)
" .. "$DEVICE is the device name attached to the interface (eth0.1, eth1, etc.)")) restore = f:option(Button, "_restorebak", translate("Restore default hotplug script")) restore.inputtitle = translate("Restore...") restore.inputstyle = "apply" t = f:option(TextValue, "lines") t.rmempty = true t.rows = 20 function t.cfgvalue() local hps = fs.readfile(script) if not hps or hps == "" then -- if script does not exist or is blank restore from backup sys.call("cp -f " .. scriptBackup .. " " .. script) return fs.readfile(script) else return hps end end function t.write(self, section, data) -- format and write new data to script return fs.writefile(script, ut.trim(data:gsub("\r\n", "\n")) .. "\n") end return m5