diff options
-rw-r--r-- | applications/luci-initmgr/Makefile | 2 | ||||
-rw-r--r-- | applications/luci-initmgr/luasrc/controller/init.lua | 25 | ||||
-rw-r--r-- | applications/luci-initmgr/luasrc/i18n/initmgr.de.lua | 5 | ||||
-rw-r--r-- | applications/luci-initmgr/luasrc/i18n/initmgr.de.xml | 11 | ||||
-rw-r--r-- | applications/luci-initmgr/luasrc/i18n/initmgr.en.lua | 5 | ||||
-rw-r--r-- | applications/luci-initmgr/luasrc/i18n/initmgr.en.xml | 11 | ||||
-rw-r--r-- | applications/luci-initmgr/luasrc/model/cbi/init/init.lua | 58 | ||||
-rw-r--r-- | contrib/package/luci/Makefile | 14 |
8 files changed, 131 insertions, 0 deletions
diff --git a/applications/luci-initmgr/Makefile b/applications/luci-initmgr/Makefile new file mode 100644 index 0000000000..81a96f6a83 --- /dev/null +++ b/applications/luci-initmgr/Makefile @@ -0,0 +1,2 @@ +include ../../build/config.mk +include ../../build/module.mk
\ No newline at end of file diff --git a/applications/luci-initmgr/luasrc/controller/init.lua b/applications/luci-initmgr/luasrc/controller/init.lua new file mode 100644 index 0000000000..b9a80d450c --- /dev/null +++ b/applications/luci-initmgr/luasrc/controller/init.lua @@ -0,0 +1,25 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth <steven@midlink.org> +Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> + +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$ +]]-- +module("luci.controller.init", package.seeall) + +function index() + if not luci.fs.isfile("/etc/rc.common") then + return + end + + local page = entry({"admin", "system", "init"}, form("init/init"), translate("initmgr", "Init Scripts")) + page.i18n = "initmgr" + page.dependent = true +end diff --git a/applications/luci-initmgr/luasrc/i18n/initmgr.de.lua b/applications/luci-initmgr/luasrc/i18n/initmgr.de.lua new file mode 100644 index 0000000000..13b6a4a8c1 --- /dev/null +++ b/applications/luci-initmgr/luasrc/i18n/initmgr.de.lua @@ -0,0 +1,5 @@ +initmgr = 'Startscripte' +initmgr_desc = 'Hier können installierte Startscripte aktiviert oder deaktiviert werden. Änderungen werden erst mit einem Geräteneustart angewendet.<br /><strong>Warnung: Wenn essentialle Startscripte wie "network" deaktiviert werden könnte das Gerät unerreichbar werden!</strong>' +initmgr_index = 'Startpriorität' +initmgr_name = 'Startscript' +initmgr_enabled = 'Aktivieren/Deaktivieren' diff --git a/applications/luci-initmgr/luasrc/i18n/initmgr.de.xml b/applications/luci-initmgr/luasrc/i18n/initmgr.de.xml new file mode 100644 index 0000000000..955ec11de5 --- /dev/null +++ b/applications/luci-initmgr/luasrc/i18n/initmgr.de.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> + +<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml"> + +<i18n:msg xml:id="initmgr">Startscripte</i18n:msg> +<i18n:msg xml:id="initmgr_desc">Hier können installierte Startscripte aktiviert oder deaktiviert werden. Änderungen werden erst mit einem Geräteneustart angewendet.<br /><strong>Warnung: Wenn essentialle Startscripte wie "network" deaktiviert werden könnte das Gerät unerreichbar werden!</strong></i18n:msg> +<i18n:msg xml:id="initmgr_index">Startpriorität</i18n:msg> +<i18n:msg xml:id="initmgr_name">Startscript</i18n:msg> +<i18n:msg xml:id="initmgr_enabled">Aktivieren/Deaktivieren</i18n:msg> + +</i18n:msgs> diff --git a/applications/luci-initmgr/luasrc/i18n/initmgr.en.lua b/applications/luci-initmgr/luasrc/i18n/initmgr.en.lua new file mode 100644 index 0000000000..6e6da7b814 --- /dev/null +++ b/applications/luci-initmgr/luasrc/i18n/initmgr.en.lua @@ -0,0 +1,5 @@ +initmgr = 'Initscripts' +initmgr_desc = 'You can enable or disable installed init scripts here. Changes will applied after a device reboot.<br /><strong>Warning: If you disable essential init scripts like "network", your device might become inaccesable!</strong>' +initmgr_index = 'Start priority' +initmgr_name = 'Initscript' +initmgr_enabled = 'Enable/Disable' diff --git a/applications/luci-initmgr/luasrc/i18n/initmgr.en.xml b/applications/luci-initmgr/luasrc/i18n/initmgr.en.xml new file mode 100644 index 0000000000..49a0d7b5a9 --- /dev/null +++ b/applications/luci-initmgr/luasrc/i18n/initmgr.en.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> + +<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml"> + +<i18n:msg xml:id="initmgr">Initscripts</i18n:msg> +<i18n:msg xml:id="initmgr_desc">You can enable or disable installed init scripts here. Changes will applied after a device reboot.<br /><strong>Warning: If you disable essential init scripts like "network", your device might become inaccesable!</strong></i18n:msg> +<i18n:msg xml:id="initmgr_index">Start priority</i18n:msg> +<i18n:msg xml:id="initmgr_name">Initscript</i18n:msg> +<i18n:msg xml:id="initmgr_enabled">Enable/Disable</i18n:msg> + +</i18n:msgs> diff --git a/applications/luci-initmgr/luasrc/model/cbi/init/init.lua b/applications/luci-initmgr/luasrc/model/cbi/init/init.lua new file mode 100644 index 0000000000..1fdc32bcaa --- /dev/null +++ b/applications/luci-initmgr/luasrc/model/cbi/init/init.lua @@ -0,0 +1,58 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth <steven@midlink.org> +Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> + +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$ +]]-- + +require("luci.sys") +require("luci.util") + +local inits = { } + +for _, name in ipairs(luci.sys.init.names()) do + local index = luci.sys.init.index(name) + local enabled = luci.sys.init.enabled(name) + + inits["%02i.%s" % { index, name }] = { + name = name, + index = tostring(index), + enabled = enabled + } +end + + +m = SimpleForm("initmgr", translate("initmgr"), translate("initmgr_desc")) +m.reset = false + +s = m:section(Table, inits) + +i = s:option(DummyValue, "index", translate("initmgr_index")) +n = s:option(DummyValue, "name", translate("initmgr_name")) + +e = s:option(Flag, "enabled", translate("initmgr_enabled")) + +e.cfgvalue = function(self, section) + return inits[section].enabled and "1" or "0" +end + +e.write = function(self, section, value) + if value == "1" and not inits[section].enabled then + inits[section].enabled = true + return luci.sys.init.enable(inits[section].name) + elseif value == "0" and inits[section].enabled then + inits[section].enabled = false + return luci.sys.init.disable(inits[section].name) + end + return true +end + +return m diff --git a/contrib/package/luci/Makefile b/contrib/package/luci/Makefile index 6c828964d5..0e3b5b582b 100644 --- a/contrib/package/luci/Makefile +++ b/contrib/package/luci/Makefile @@ -504,6 +504,16 @@ define Package/luci-app-tinyproxy/install $(call Package/luci/install/template,$(1),applications/luci-tinyproxy) endef +define Package/luci-app-initmgr + $(call Package/luci/webtemplate) + DEPENDS+=+luci-admin-full + TITLE:=LuCI Initscript Management +endef + +define Package/luci-app-initmgr/install + $(call Package/luci/install/template,$(1),applications/luci-initmgr) +endef + ### Server Gateway Interfaces ### @@ -739,6 +749,9 @@ endif ifneq ($(CONFIG_PACKAGE_luci-app-tinyproxy),) PKG_SELECTED_MODULES+=applications/luci-tinyproxy endif +ifneq ($(CONFIG_PACKAGE_luci-app-initmgr),) + PKG_SELECTED_MODULES+=applications/luci-initmgr +endif ifneq ($(CONFIG_PACKAGE_luci-sgi-cgi),) @@ -829,6 +842,7 @@ $(eval $(call BuildPackage,luci-app-p910nd)) $(eval $(call BuildPackage,luci-app-ushare)) $(eval $(call BuildPackage,luci-app-hd_idle)) $(eval $(call BuildPackage,luci-app-tinyproxy)) +$(eval $(call BuildPackage,luci-app-initmgr)) $(eval $(call BuildPackage,luci-sgi-cgi)) $(eval $(call BuildPackage,luci-sgi-luci)) |