Author: blogic
Date: 2014-06-05 12:56:06 +0200 (Thu, 05 Jun 2014)
New Revision: 41008

Modified:
   trunk/package/system/procd/files/procd.sh
Log:
procd: add wrapper calls for interface triggers

Signed-off-by: John Crispin <[email protected]>

Modified: trunk/package/system/procd/files/procd.sh
===================================================================
--- trunk/package/system/procd/files/procd.sh   2014-06-05 10:56:02 UTC (rev 
41007)
+++ trunk/package/system/procd/files/procd.sh   2014-06-05 10:56:06 UTC (rev 
41008)
@@ -128,7 +128,7 @@
                env|data|limits)
                        _procd_add_table "$type" "$@"
                ;;
-               command|netdev|file|respawn)
+               command|netdev|file|respawn|watch)
                        _procd_add_array "$type" "$@"
                ;;
                nice)
@@ -137,6 +137,37 @@
        esac
 }
 
+_procd_add_interface_trigger() {
+       json_add_array
+       _procd_add_array_data "$1"
+       shift
+
+       json_add_array
+       _procd_add_array_data "if"
+
+       json_add_array
+       _procd_add_array_data "eq" "interface" "$1"
+       shift
+       json_close_array
+
+       json_add_array
+       _procd_add_array_data "run_script" "$@"
+       json_close_array
+
+       json_close_array
+
+       json_close_array
+}
+
+_procd_add_network_trigger() {
+       local script=$(readlink "$initscript")
+       local name=$(basename ${script:-$initscript})
+
+       _procd_open_trigger
+       _procd_add_interface_trigger "interface.*" $1 /etc/init.d/$name reload
+       _procd_close_trigger
+}
+
 _procd_add_config_trigger() {
        json_add_array
        _procd_add_array_data "$1"
@@ -182,7 +213,7 @@
                env|data|limits)
                        _procd_add_table_data "$@"
                ;;
-               command|netdev|file|respawn)
+               command|netdev|file|respawn|watch)
                        _procd_add_array_data "$@"
                ;;
        esac
@@ -237,6 +268,8 @@
        procd_add_instance \
        procd_add_config_trigger \
        procd_add_reload_trigger \
+       procd_add_interface_trigger \
+       procd_add_network_trigger \
        procd_open_trigger \
        procd_close_trigger \
        procd_open_instance \
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to