Add widget config from community profile to meshwizard
authorManuel Munz <freifunk@somakoma.de>
Mon, 17 Sep 2012 17:06:52 +0000 (17:06 +0000)
committerManuel Munz <freifunk@somakoma.de>
Mon, 17 Sep 2012 17:06:52 +0000 (17:06 +0000)
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/read_defaults.sh
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_widgets.sh [new file with mode: 0755]
contrib/package/meshwizard/files/usr/bin/meshwizard/wizard.sh

index fe8410116a76e3eea7ba2a4093afe8fcd12ac39c..4e0b419c128c2f11ef1067a3c445e7c48d66c3de 100755 (executable)
@@ -2,6 +2,7 @@
 # This reads the settings we need to have to configure everything
 # Argument $1: community
 
+. /lib/functions.sh
 community="$1"
 
 # reads variables from uci files, parameter $1 is the section
@@ -9,13 +10,22 @@ get_var() {
        uci -q show $1 | cut -d "." -f 2-100 |grep "\." | sed -e 's/^\([A-Za-z0-9_]*\)\./\1_/g' -e 's/=\(.*\)$/="\1"/g'
 }
 
+handle_widgets() {
+        widgets="$1 $widgets"
+}
+config_load freifunk
+config_foreach handle_widgets widget
+config_load profile_$community
+config_foreach handle_widgets widget
+echo "widgets=$widgets"
+
 # read default values from /etc/config/freifunk
-for v in system wifi_device wifi_iface interface alias dhcp olsr_interface olsr_interfacedefaults zone_freifunk include; do
+for v in system wifi_device wifi_iface interface alias dhcp olsr_interface olsr_interfacedefaults zone_freifunk include $widgets; do
        get_var freifunk.$v
 done
 
 # now read all values from the selected community profile, will override some values from the defaults before
-for v in system wifi_device wifi_iface interface alias dhcp olsr_interface olsr_interfacedefaults profile zone_freifunk include luci_splash ipv6; do
+for v in system wifi_device wifi_iface interface alias dhcp olsr_interface olsr_interfacedefaults profile zone_freifunk include luci_splash ipv6 $widgets; do
        get_var profile_$community.$v
 done
 
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_widgets.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_widgets.sh
new file mode 100755 (executable)
index 0000000..288252f
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+. /lib/functions.sh
+ . $dir/functions.sh
+
+if [ -n "$widgets" ]; then
+       [ ! -f "/etc/config/freifunk-widgets" ] && touch /etc/config/freifunk-widgets
+       for w in $widgets; do
+               uci set freifunk-widgets.${w}=widget
+               set_defaults "${w}_" freifunk-widgets.${w}
+               uci delete profile_$community.${w}
+       done
+       uci commit profile_$community
+       uci_commitverbose "Added widget config." freifunk-widgets
+fi
index 41a6117ea0c889c81c73643509db006878bd3170..1aba71e0707a5b4d1f84e5f3cddbb972e1e4d981 100755 (executable)
@@ -61,6 +61,7 @@ $dir/helpers/setup_olsrd.sh
 $dir/helpers/setup_firewall.sh
 $dir/helpers/setup_ssh.sh
 $dir/helpers/setup_uhttpd.sh
+$dir/helpers/setup_widgets.sh
 
 if [ "$wan_proto" == "static" ] && [ -n "$wan_ip4addr" ] && [ -n "$wan_netmask" ]; then
        $dir/helpers/setup_wan_static.sh
@@ -117,4 +118,4 @@ done
 
 echo "+ The wizard has finished and the router will reboot now."
 
-reboot
+#reboot