comgt: port 3g.sh to netifd
[openwrt/svn-archive/archive.git] / package / comgt / files-old / 3g.button
diff --git a/package/comgt/files-old/3g.button b/package/comgt/files-old/3g.button
new file mode 100644 (file)
index 0000000..57f4286
--- /dev/null
@@ -0,0 +1,36 @@
+button_action() {(
+       # use led for keeping track of the state
+       case "$(cat /proc/diag/led/3g_green)" in
+               1)
+                       ifdown "$1"
+                       ifup wan
+               ;;
+               0)
+                       ifdown wan
+                       ifup "$1"
+               ;;
+       esac
+)}
+
+[ "$ACTION" = "released" -a "$BUTTON" = "3g" ] && {
+       HOTPLUG="$(cat /proc/sys/kernel/hotplug)"
+       (echo /bin/true > /proc/sys/kernel/hotplug)
+
+       include /lib/network
+       scan_interfaces
+       config_cb() {
+               config_get TYPE "$CONFIG_SECTION" TYPE
+               case "$TYPE" in
+                       interface)
+                               config_get proto "$CONFIG_SECTION" proto
+                               config_get button "$CONFIG_SECTION" button
+                               case "$button" in
+                                       1|on|enabled) [ "$proto" = "3g" ] && button_action "$CONFIG_SECTION";;
+                               esac
+                       ;;
+               esac
+       }
+       config_load network
+
+       (echo $HOTPLUG > /proc/sys/kernel/hotplug)
+} &