--[[ Copyright (C) 2014-2017 - Eloi Carbo This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ]]-- local fs = require "nixio.fs" local functions_dir = "/etc/bird4/functions/" local lock_file = "/etc/bird4/function_lock" m = SimpleForm("bird4", "Bird4 Functions", "INFO: New files are created using Timestamps.
In order to make it easier to handle, use SSH to connect to your terminal and rename those files.
If your file is not correctly shown in the list, please, refresh your browser.") s = m:section(SimpleSection) files = s:option(ListValue, "Files", "Function Files:") local new_function = functions_dir .. os.date("function-%Y%m%d-%H%M") -- New File Entry files:value(new_function, "New File (".. new_function .. ")") files.default = new_function local i, file_list = 0, { } for filename in io.popen("find " .. functions_dir .. " -type f"):lines() do i = i + 1 files:value(filename, filename) end ld = s:option(Button, "_load", "Load File") ld.inputstyle = "reload" st_file = s:option(DummyValue, "_stfile", "Editing file:") function st_file.cfgvalue(self, section) if ld:formvalue(section) then fs.writefile(lock_file, files:formvalue(section)) return files:formvalue(section) else fs.writefile(lock_file, "") return "" end end area = s:option(Value, "_functions") area.template = "bird4/tvalue" area.rows = 30 function area.cfgvalue(self,section) if ld:formvalue(section) then local contents = fs.readfile(files:formvalue(section)) if contents then return contents else return "" end else return "" end end function area.write(self, section) local locked_file = fs.readfile(lock_file) if locked_file and not ld:formvalue(section) then local text = self:formvalue(section):gsub("\r\n?", "\n") fs.writefile(locked_file, text) fs.writefile(lock_file, "") end end return m