From ca9314ee2203551fe2b28a976d7c6014b3b0957a Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Mon, 16 Apr 2012 16:49:04 +0000 Subject: [PATCH] New application for watchcat Hi, This patch add a new luci-application for the watchcat package (in feeds/packages/utils). Chris --- applications/luci-watchcat/Makefile | 3 + applications/luci-watchcat/ipkg/postinst | 7 ++ .../luasrc/controller/watchcat.lua | 22 +++++++ .../luasrc/model/cbi/watchcat/watchcat.lua | 64 +++++++++++++++++++ .../root/etc/uci-defaults/luci-watchcat | 10 +++ 5 files changed, 106 insertions(+) create mode 100644 applications/luci-watchcat/Makefile create mode 100644 applications/luci-watchcat/ipkg/postinst create mode 100644 applications/luci-watchcat/luasrc/controller/watchcat.lua create mode 100644 applications/luci-watchcat/luasrc/model/cbi/watchcat/watchcat.lua create mode 100644 applications/luci-watchcat/root/etc/uci-defaults/luci-watchcat diff --git a/applications/luci-watchcat/Makefile b/applications/luci-watchcat/Makefile new file mode 100644 index 0000000000..2cb156c0bc --- /dev/null +++ b/applications/luci-watchcat/Makefile @@ -0,0 +1,3 @@ +PO=watchcat +include ../../build/config.mk +include ../../build/module.mk diff --git a/applications/luci-watchcat/ipkg/postinst b/applications/luci-watchcat/ipkg/postinst new file mode 100644 index 0000000000..99114604ac --- /dev/null +++ b/applications/luci-watchcat/ipkg/postinst @@ -0,0 +1,7 @@ +#!/bin/sh +me="watchcat" +[ -n "${IPKG_INSTROOT}" ] || { + ( . /etc/uci-defaults/luci-$me ) && rm -f /etc/uci-defaults/luci-$me + /etc/init.d/$me enabled || /etc/init.d/$me enable + exit 0 +} diff --git a/applications/luci-watchcat/luasrc/controller/watchcat.lua b/applications/luci-watchcat/luasrc/controller/watchcat.lua new file mode 100644 index 0000000000..5eba5cdebb --- /dev/null +++ b/applications/luci-watchcat/luasrc/controller/watchcat.lua @@ -0,0 +1,22 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2012 Christian Gagneraud + +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.watchcat", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/system") then + return + end + entry({"admin", "services", "watchcat"}, cbi("watchcat/watchcat"), _("Watchcat"), 90) +end diff --git a/applications/luci-watchcat/luasrc/model/cbi/watchcat/watchcat.lua b/applications/luci-watchcat/luasrc/model/cbi/watchcat/watchcat.lua new file mode 100644 index 0000000000..9f47bcaa6d --- /dev/null +++ b/applications/luci-watchcat/luasrc/model/cbi/watchcat/watchcat.lua @@ -0,0 +1,64 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2012 Christian Gagneraud + +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$ +]]-- + +m = Map("system", + translate("Watchcat"), + translate("Watchcat allows to configure a periodic reboot and/or when " .. + "internet connection has been lost for a certain period of time." + )) + +s = m:section(TypedSection, "watchcat") +s.anonymous = true +s.addremove = true + +mode = s:option(ListValue, "mode", + translate("Operating mode")) +mode.default = "allways" +mode:value("ping", "Reboot on internet connection lost") +mode:value("allways", "Periodic reboot") + +forcedelay = s:option(Value, "forcedelay", + translate("Forced reboot delay"), + translate("When rebooting the system the watchcat will trigger a soft reboot, " .. + "Entering a non zero value here, will trigger a delayed hard reboot " .. + "if the soft reboot fails. Enter a number of seconds to enable, " .. + "use 0 to disable")) +forcedelay.datatype = "uinteger" +forcedelay.default = "0" + +period = s:option(Value, "period", + translate("Period"), + translate("In periodic mode, it defines the reboot period. " .. + "In internet mode, it defines the longest period of " .. + "time without internet access before a reboot is engaged." .. + "Default unit is seconds, you can use the " .. + "suffix 'm' for minutes, 'h' for hours or 'd' " .. + "for days")) + +pinghost = s:option(Value, "pinghost", + translate("Ping host"), + translate("Host address to ping")) +pinghost.datatype = "host" +pinghost.default = "8.8.8.8" +pinghost:depends({mode="ping"}) + +pingperiod = s:option(Value, "pingperiod", + translate("Ping period"), + translate("How often to check internet connection. " .. + "Default unit is seconds, you can you use the " .. + "suffix 'm' for minutes, 'h' for hours or 'd' " .. + "for days")) +pingperiod:depends({mode="ping"}) + +return m diff --git a/applications/luci-watchcat/root/etc/uci-defaults/luci-watchcat b/applications/luci-watchcat/root/etc/uci-defaults/luci-watchcat new file mode 100644 index 0000000000..8cdb8c7b9f --- /dev/null +++ b/applications/luci-watchcat/root/etc/uci-defaults/luci-watchcat @@ -0,0 +1,10 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + add ucitrack system + set ucitrack.@system[-1].init=watchcat + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 -- 2.30.2