From 6245ad6a73090ac3668e8f4b9749614592294a08 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Mon, 24 Oct 2011 01:10:34 +0000 Subject: modules/admin-full: rework system menu area --- .../luasrc/model/cbi/admin_system/backupfiles.lua | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 modules/admin-full/luasrc/model/cbi/admin_system/backupfiles.lua (limited to 'modules/admin-full/luasrc/model/cbi/admin_system/backupfiles.lua') diff --git a/modules/admin-full/luasrc/model/cbi/admin_system/backupfiles.lua b/modules/admin-full/luasrc/model/cbi/admin_system/backupfiles.lua new file mode 100644 index 0000000000..22258a9372 --- /dev/null +++ b/modules/admin-full/luasrc/model/cbi/admin_system/backupfiles.lua @@ -0,0 +1,92 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth +Copyright 2011 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- + + +if luci.http.formvalue("cbid.luci.1._list") then + luci.http.redirect(luci.dispatcher.build_url("admin/system/flashops/backupfiles") .. "?display=list") +elseif luci.http.formvalue("cbid.luci.1._edit") then + luci.http.redirect(luci.dispatcher.build_url("admin/system/flashops/backupfiles") .. "?display=edit") + return +end + +m = SimpleForm("luci", "%s - %s - %s" %{ translate("System"), translate("Flash operations"), translate("Backup file list") }) +m:append(Template("admin_system/backupfiles")) + +if luci.http.formvalue("display") ~= "list" then + f = m:section(SimpleSection, nil, translate("This is a list of shell glob patterns for matching files and directories to include during sysupgrade. Modified files in /etc/config/ and certain other configurations are automatically preserved.")) + + l = f:option(Button, "_list", translate("Show current backup file list")) + l.inputtitle = translate("Open list...") + l.inputstyle = "apply" + + c = f:option(TextValue, "_custom") + c.rmempty = false + c.cols = 70 + c.rows = 30 + + c.cfgvalue = function(self, section) + return nixio.fs.readfile("/etc/sysupgrade.conf") + end + + c.write = function(self, section, value) + value = value:gsub("\r\n?", "\n") + return nixio.fs.writefile("/etc/sysupgrade.conf", value) + end +else + m.submit = false + m.reset = false + + f = m:section(SimpleSection, nil, translate("Below is the determined list of files to backup. It consists of changed configuration files marked by opkg, essential base files and the user defined backup patterns.")) + + l = f:option(Button, "_edit", translate("Back to configuration")) + l.inputtitle = translate("Close list...") + l.inputstyle = "link" + + + d = f:option(DummyValue, "_detected") + d.rawhtml = true + d.cfgvalue = function(s) + local list = io.popen( + "( find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' /etc/sysupgrade.conf " .. + "/lib/upgrade/keep.d/* 2>/dev/null) -type f 2>/dev/null; " .. + "opkg list-changed-conffiles ) | sort -u" + ) + + if list then + local files = { "
    " } + + while true do + local ln = list:read("*l") + if not ln then + break + else + files[#files+1] = "
  • " + files[#files+1] = luci.util.pcdata(ln) + files[#files+1] = "
  • " + end + end + + list:close() + files[#files+1] = "
" + + return table.concat(files, "") + end + + return "" .. translate("No files found") .. "" + end + +end + +return m -- cgit v1.2.3