summaryrefslogtreecommitdiffhomepage
path: root/modules/admin-full/luasrc
diff options
context:
space:
mode:
Diffstat (limited to 'modules/admin-full/luasrc')
-rw-r--r--modules/admin-full/luasrc/model/cbi/admin_index/luci.lua58
1 files changed, 55 insertions, 3 deletions
diff --git a/modules/admin-full/luasrc/model/cbi/admin_index/luci.lua b/modules/admin-full/luasrc/model/cbi/admin_index/luci.lua
index e3d7d412ad..4639664377 100644
--- a/modules/admin-full/luasrc/model/cbi/admin_index/luci.lua
+++ b/modules/admin-full/luasrc/model/cbi/admin_index/luci.lua
@@ -2,6 +2,7 @@
LuCI - Lua Configuration Interface
Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2010 Jo-Philipp Wich <xm@subsignal.org>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -11,6 +12,7 @@ You may obtain a copy of the License at
$Id$
]]--
+
require("luci.config")
m = Map("luci", translate("Web <abbr title=\"User Interface\">UI</abbr>"), translate("Here you can customize the settings and the functionality of <abbr title=\"Lua Configuration Interface\">LuCI</abbr>."))
@@ -47,8 +49,58 @@ u = m:section(NamedSection, "uci_oncommit", "event", translate("Post-commit acti
translate("These commands will be executed automatically when a given <abbr title=\"Unified Configuration Interface\">UCI</abbr> configuration is committed allowing changes to be applied instantly."))
u.dynamic = true
-f = m:section(NamedSection, "flash_keep", "extern", translate("Files to be kept when flashing a new firmware"),
- translate("When flashing a new firmware with <abbr title=\"Lua Configuration Interface\">LuCI</abbr> these files will be added to the new firmware installation."))
-f.dynamic = true
+
+f = m:section(NamedSection, "main", "core", translate("Files to be kept when flashing a new firmware"))
+
+f:tab("detected", translate("Detected Files"),
+ translate("The following files are detected by the system and will be kept automatically during sysupgrade"))
+
+f:tab("custom", translate("Custom Files"),
+ translate("This is a list of shell glob patterns for matching files and directories to include during sysupgrade"))
+
+d = f:taboption("detected", DummyValue, "_detected", translate("Detected files"))
+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 = { "<ul>" }
+
+ while true do
+ local ln = list:read("*l")
+ if not ln then
+ break
+ else
+ files[#files+1] = "<li>"
+ files[#files+1] = luci.util.pcdata(ln)
+ files[#files+1] = "</li>"
+ end
+ end
+
+ list:close()
+ files[#files+1] = "</ul>"
+
+ return table.concat(files, "")
+ end
+
+ return "<em>No files found</em>"
+end
+
+c = f:taboption("custom", TextValue, "_custom", translate("Custom files"))
+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)
+ return nixio.fs.writefile("/etc/sysupgrade.conf", value)
+end
return m