summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/root/sbin/luci-reload
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2014-12-03 15:17:05 +0100
committerJo-Philipp Wich <jow@openwrt.org>2015-01-08 16:26:20 +0100
commit1bb4822dca6113f73e3bc89e2acf15935e6f8e92 (patch)
tree35e16f100466e4e00657199b38bb3d87d52bf73f /modules/luci-base/root/sbin/luci-reload
parent9edd0e46c3f880727738ce8ca6ff1c8b85f99ef4 (diff)
Rework LuCI build system
* Rename subdirectories to their repective OpenWrt package names * Make each LuCI module its own standalone package * Deploy a shared luci.mk which is used by each module Makefile Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Diffstat (limited to 'modules/luci-base/root/sbin/luci-reload')
-rwxr-xr-xmodules/luci-base/root/sbin/luci-reload45
1 files changed, 45 insertions, 0 deletions
diff --git a/modules/luci-base/root/sbin/luci-reload b/modules/luci-base/root/sbin/luci-reload
new file mode 100755
index 0000000000..cc41da2bb7
--- /dev/null
+++ b/modules/luci-base/root/sbin/luci-reload
@@ -0,0 +1,45 @@
+#!/bin/sh
+. /lib/functions.sh
+
+apply_config() {
+ config_get init "$1" init
+ config_get exec "$1" exec
+ config_get test "$1" test
+
+ echo "$2" > "/var/run/luci-reload-status"
+
+ [ -n "$init" ] && reload_init "$2" "$init" "$test"
+ [ -n "$exec" ] && reload_exec "$2" "$exec" "$test"
+}
+
+reload_exec() {
+ local service="$1"
+ local ok="$3"
+ set -- $2
+ local cmd="$1"; shift
+
+ [ -x "$cmd" ] && {
+ echo "Reloading $service... "
+ ( $cmd "$@" ) 2>/dev/null 1>&2
+ [ -n "$ok" -a "$?" != "$ok" ] && echo '!!! Failed to reload' $service '!!!'
+ }
+}
+
+reload_init() {
+ [ -x /etc/init.d/$2 ] && /etc/init.d/$2 enabled && {
+ echo "Reloading $1... "
+ /etc/init.d/$2 reload >/dev/null 2>&1
+ [ -n "$3" -a "$?" != "$3" ] && echo '!!! Failed to reload' $1 '!!!'
+ }
+}
+
+lock "/var/run/luci-reload"
+
+config_load ucitrack
+
+for i in $*; do
+ config_foreach apply_config $i $i
+done
+
+rm -f "/var/run/luci-reload-status"
+lock -u "/var/run/luci-reload"