procd: add a small script that handles config reloads until configd is ready
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 11 Jul 2013 17:00:54 +0000 (17:00 +0000)
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 11 Jul 2013 17:00:54 +0000 (17:00 +0000)
Signed-off-by: John Crispin <blogic@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37248 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/files/etc/init.d/boot
package/base-files/files/etc/rc.common
package/system/procd/Makefile
package/system/procd/files/procd.sh
package/system/procd/files/reload_config [new file with mode: 0644]

index 078adb8..aad59e2 100755 (executable)
@@ -60,6 +60,10 @@ start() {
        rm -f /tmp/wireless.tmp
 
        apply_uci_config
        rm -f /tmp/wireless.tmp
 
        apply_uci_config
+       
+       # temporary hack until configd exists
+       /sbin/reload_config
+       
        config_load system
        config_foreach system_config system
 
        config_load system
        config_foreach system_config system
 
index aeec90c..2211189 100755 (executable)
@@ -80,6 +80,10 @@ start_service() {
        return 0
 }
 
        return 0
 }
 
+service_triggers() {
+       return 0
+}
+
 stop_service() {
        return 0
 }
 stop_service() {
        return 0
 }
index 27879e8..b91af98 100644 (file)
@@ -32,6 +32,7 @@ define Package/procd/install
        $(INSTALL_DIR) $(1)/sbin $(1)/lib/functions $(1)/etc/init.d
 
        $(CP) $(PKG_INSTALL_DIR)/usr/sbin/{procd,askfirst,udevtrigger,logread} $(1)/sbin/
        $(INSTALL_DIR) $(1)/sbin $(1)/lib/functions $(1)/etc/init.d
 
        $(CP) $(PKG_INSTALL_DIR)/usr/sbin/{procd,askfirst,udevtrigger,logread} $(1)/sbin/
+       $(INSTALL_BIN) ./files/reload_config $(1)/sbin/
        $(INSTALL_BIN) ./files/log.init $(1)/etc/init.d/log
        $(INSTALL_DATA) ./files/hotplug*.json $(1)/etc/
        $(INSTALL_DATA) ./files/procd.sh $(1)/lib/functions/
        $(INSTALL_BIN) ./files/log.init $(1)/etc/init.d/log
        $(INSTALL_DATA) ./files/hotplug*.json $(1)/etc/
        $(INSTALL_DATA) ./files/procd.sh $(1)/lib/functions/
index b706b1e..096eb2d 100644 (file)
@@ -67,6 +67,9 @@ _procd_open_service() {
 
 _procd_close_service() {
        json_close_object
 
 _procd_close_service() {
        json_close_object
+       _procd_open_trigger
+       service_triggers
+       _procd_close_trigger
        _procd_ubus_call set
 }
 
        _procd_ubus_call set
 }
 
diff --git a/package/system/procd/files/reload_config b/package/system/procd/files/reload_config
new file mode 100644 (file)
index 0000000..ef8ab87
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+MD5FILE=/var/run/config.md5
+[ -f $MD5FILE ] && {
+       for c in `md5sum -c $MD5FILE 2>/dev/null| grep FAILED | cut -d: -f1`; do
+               ubus call service event "{ \"type\": \"config.change\", \"data\": { \"package\": \"$(basename $c)\" }}"
+       done
+}
+md5sum /etc/config/* > $MD5FILE