libs: remove http folder
[project/luci.git] / libs / uci / root / sbin / luci-reload
index cc621b2..24cf760 100755 (executable)
@@ -4,29 +4,37 @@
 apply_config() {
        config_get init "$1" init
        config_get exec "$1" exec
-       
-       [ -n "$init" ] && reload_init "$2" "$init"
-       [ -n "$exec" ] && reload_exec "$2" "$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() {
        [ -x $2 ] && {
                echo "Reloading $1... "
-               $2 >/dev/null 2>&1 || echo "!!! Failed to reload $1 !!!"
+               $2 >/dev/null 2>&1
+               [ -n "$3" -a "$?" != "$3" ] && echo '!!! Failed to reload' $1 '!!!'
        }
 }
 
 reload_init() {
        [ -x /etc/init.d/$2 ] && /etc/init.d/$2 enabled && {
                echo "Reloading $1... "
-               /etc/init.d/$2 reload >/dev/null 2>&1 || echo "!!! Failed to reload $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
+for i in $*; do
        config_foreach apply_config $i $i
-       echo "done."
-done
\ No newline at end of file
+done
+
+rm -f "/var/run/luci-reload-status"
+lock -u "/var/run/luci-reload"