From 2fa0fa18150c100b0ed9080444286d1793b287df Mon Sep 17 00:00:00 2001 From: Manuel Munz Date: Mon, 3 Oct 2011 21:16:10 +0000 Subject: [PATCH] contrib/meshwizard: Fix setting of values which contain spaces & cleanups --- .../files/usr/bin/meshwizard/functions.sh | 9 +++-- .../bin/meshwizard/helpers/initial_config.sh | 33 ++++--------------- .../bin/meshwizard/helpers/read_defaults.sh | 5 +++ .../bin/meshwizard/helpers/setup_freifunk.sh | 7 ++-- .../bin/meshwizard/helpers/setup_system.sh | 1 + .../files/usr/bin/meshwizard/wizard.sh | 16 +++++---- 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 -- 2.30.2