summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorManuel Munz <freifunk@somakoma.de>2011-10-03 21:16:10 +0000
committerManuel Munz <freifunk@somakoma.de>2011-10-03 21:16:10 +0000
commit2fa0fa18150c100b0ed9080444286d1793b287df (patch)
treead00ad87b53d8e7e7c72b2c880d7499d6a5569a9
parent35137845dd427dd4da8ed7a4a8f27adc37ae1b22 (diff)
contrib/meshwizard: Fix setting of values which contain spaces & cleanups
-rw-r--r--contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh9
-rwxr-xr-xcontrib/package/meshwizard/files/usr/bin/meshwizard/helpers/initial_config.sh33
-rwxr-xr-xcontrib/package/meshwizard/files/usr/bin/meshwizard/helpers/read_defaults.sh5
-rwxr-xr-xcontrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_freifunk.sh7
-rwxr-xr-xcontrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_system.sh1
-rwxr-xr-xcontrib/package/meshwizard/files/usr/bin/meshwizard/wizard.sh16
6 files changed, 31 insertions, 40 deletions
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh
index 689289bbb8..fbb36ebe55 100644
--- a/contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh
+++ b/contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh
@@ -24,9 +24,12 @@ uci_commitverbose() {
}
set_defaults() {
- for def in $(env |grep "^$1"); do
- option=${def/$1/}
- uci set $2.$option
+ for def in $(env |grep "^$1" | sed 's/ /_/g'); do
+ option="${def/$1/}"
+ a="$(echo $option |cut -d '=' -f1)"
+ b="$(echo $option |cut -d '=' -f2)"
+ b="${b//_/ }"
+ uci set $2.$a="$b"
done
}
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/initial_config.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/initial_config.sh
index 388886a54f..12b9148ab2 100755
--- a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/initial_config.sh
+++ b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/initial_config.sh
@@ -18,42 +18,23 @@ handle_system() {
}
config_foreach handle_system system
-if [ -n "$(uci -q get meshwizard.system)" ]; then
- echo " + Setup system"
- uci show meshwizard.system | sed 's/^meshwizard/uci set system/g' | while read line; do
- eval $line
- echo " $line"
- done
- uci -q delete meshwizard.system
-fi
-
if [ -n "$(uci -q get meshwizard.community)" ]; then
echo " + Setup community"
- uci show meshwizard.community | sed 's/^meshwizard/freifunk/g' | while read line; do
- eval uci set $line
- echo " $line"
- done
+ set_defaults "community_" freifunk.community
uci -q delete meshwizard.community
+ uci_commitverbose freifunk
fi
if [ -n "$(uci -q get meshwizard.contact)" ]; then
echo " + Setup contact"
- uci show meshwizard.contact | sed 's/^meshwizard/freifunk/g' | while read line; do
- eval uci set $line
- echo " $line"
- done
- uci -q delete meshwizard.contact
+ set_defaults "contact_" freifunk.contact
+ uci -q delete meshwizard.contact && uci_commitverbose freifunk
fi
if [ "$has_luci" == TRUE ]; then
- if [ -n "$(uci -q get meshwizard.luci_main)" ]; then
- echo " + Setup luci"
- uci show meshwizard.luci_main |sed -e 's/^meshwizard/luci/g' -e 's/luci_main/main/' | while read line; do
- eval uci set $line
- echo " $line"
- done
- uci -q delete meshwizard.luci_main
- fi
+ echo " + Setup luci"
+ set_defaults "luci_main_" luci.main
+ uci -q delete meshwizard.luci_main && uci_commitverbose luci
fi
uci commit
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/read_defaults.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/read_defaults.sh
index e20cc38272..67469e3c2c 100755
--- a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/read_defaults.sh
+++ b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/read_defaults.sh
@@ -18,3 +18,8 @@ done
for v in system wifi_device wifi_iface interface alias dhcp olsr_interface olsr_interfacedefaults profile zone_freifunk include; do
get_var profile_$community.$v
done
+
+# read values from meshwizard
+for v in system luci_main contact community; do
+ get_var meshwizard.$v
+done
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_freifunk.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_freifunk.sh
index 0e6e7dfadf..e4bd87f1cb 100755
--- a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_freifunk.sh
+++ b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_freifunk.sh
@@ -4,11 +4,10 @@
. $dir/functions.sh
# Set community homepage
-hp=$(uci -q get profile_$community.profile.homepage)
-if [ -n "$hp" ]; then
- uci set freifunk.community.homepage="$hp"
+if [ -n "$profile_homepage" ]; then
+ uci set freifunk.community.homepage="$profile_homepage"
fi
-uci_commitverbose "/etc/init.d/freifunk config" freifunk
+uci_commitverbose freifunk
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_system.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_system.sh
index 2c3081e666..eb899d011b 100755
--- a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_system.sh
+++ b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_system.sh
@@ -9,4 +9,5 @@ if [ -n "$(env | grep '^system_')" ]; then
done
fi
+uci -q delete meshwizard.system && uci commit meshwizard
uci_commitverbose "System config" system
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/wizard.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/wizard.sh
index f4e7af2bc3..113d9058f0 100755
--- a/contrib/package/meshwizard/files/usr/bin/meshwizard/wizard.sh
+++ b/contrib/package/meshwizard/files/usr/bin/meshwizard/wizard.sh
@@ -23,12 +23,9 @@ opkg list_installed |grep luci-app-splash > /dev/null && export has_luci_splash=
echo "+ Renaming wifi-devices in /etc/config/meshwizard"
$dir/helpers/rename-wifi.sh
-# Firstboot/initial config
- echo "+ Initial config"
- $dir/helpers/initial_config.sh
-
# Get community
-export community=$(uci get freifunk.community.name)
+export community=$(uci -q get meshwizard.community.name)
+[ -z "$community" ] && community=$(uci -q get freifunk.community.name)
[ -z "$community" ] && echo "Error: Community is not set in /etc/config/freifunk, aborting now." && exit 1
# Check whether we want to cleanup uci config before setting new options or not
@@ -45,15 +42,20 @@ export networks
echo " Community=$community
Network(s)=$networks"
-# Read default values (first from /etc/config/freifunk, then from /etc/config/profile_$community,
+# Read default values (first from /etc/config/freifunk, then from /etc/config/profile_$community
+# then /etc/config/meshwizard
# last will overwrite first
-
$dir/helpers/read_defaults.sh $community > /tmp/meshwizard.tmp
while read line; do
export "${line//\"/}"
done < /tmp/meshwizard.tmp
+# Firstboot/initial config
+ echo "+ Initial config"
+ $dir/helpers/initial_config.sh
+
+
$dir/helpers/setup_dnsmasq.sh
$dir/helpers/setup_system.sh
$dir/helpers/setup_freifunk.sh