From 021a3fcb837b2e6c680e40e96163759c970cfc29 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Fri, 3 Oct 2008 17:33:29 +0000 Subject: [PATCH] * luci/applications: add init manager --- applications/luci-initmgr/Makefile | 2 + .../luci-initmgr/luasrc/controller/init.lua | 25 ++++++++ .../luci-initmgr/luasrc/i18n/initmgr.de.lua | 5 ++ .../luci-initmgr/luasrc/i18n/initmgr.de.xml | 11 ++++ .../luci-initmgr/luasrc/i18n/initmgr.en.lua | 5 ++ .../luci-initmgr/luasrc/i18n/initmgr.en.xml | 11 ++++ .../luasrc/model/cbi/init/init.lua | 58 +++++++++++++++++++ contrib/package/luci/Makefile | 14 +++++ 8 files changed, 131 insertions(+) create mode 100644 applications/luci-initmgr/Makefile create mode 100644 applications/luci-initmgr/luasrc/controller/init.lua create mode 100644 applications/luci-initmgr/luasrc/i18n/initmgr.de.lua create mode 100644 applications/luci-initmgr/luasrc/i18n/initmgr.de.xml create mode 100644 applications/luci-initmgr/luasrc/i18n/initmgr.en.lua create mode 100644 applications/luci-initmgr/luasrc/i18n/initmgr.en.xml create mode 100644 applications/luci-initmgr/luasrc/model/cbi/init/init.lua diff --git a/applications/luci-initmgr/Makefile b/applications/luci-initmgr/Makefile new file mode 100644 index 000000000..81a96f6a8 --- /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 000000000..b9a80d450 --- /dev/null +++ b/applications/luci-initmgr/luasrc/controller/init.lua @@ -0,0 +1,25 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth +Copyright 2008 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$ +]]-- +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 000000000..13b6a4a8c --- /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.
Warnung: Wenn essentialle Startscripte wie "network" deaktiviert werden könnte das Gerät unerreichbar werden!' +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 000000000..955ec11de --- /dev/null +++ b/applications/luci-initmgr/luasrc/i18n/initmgr.de.xml @@ -0,0 +1,11 @@ + + + + +Startscripte +Hier können installierte Startscripte aktiviert oder deaktiviert werden. Änderungen werden erst mit einem Geräteneustart angewendet.
Warnung: Wenn essentialle Startscripte wie "network" deaktiviert werden könnte das Gerät unerreichbar werden!
+Startpriorität +Startscript +Aktivieren/Deaktivieren + +
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 000000000..6e6da7b81 --- /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.
Warning: If you disable essential init scripts like "network", your device might become inaccesable!' +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 000000000..49a0d7b5a --- /dev/null +++ b/applications/luci-initmgr/luasrc/i18n/initmgr.en.xml @@ -0,0 +1,11 @@ + + + + +Initscripts +You can enable or disable installed init scripts here. Changes will applied after a device reboot.
Warning: If you disable essential init scripts like "network", your device might become inaccesable!
+Start priority +Initscript +Enable/Disable + +
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 000000000..1fdc32bca --- /dev/null +++ b/applications/luci-initmgr/luasrc/model/cbi/init/init.lua @@ -0,0 +1,58 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth +Copyright 2008 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$ +]]-- + +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 6c828964d..0e3b5b582 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)) -- 2.25.1