[packages] olsrd: init: for better reuse, make a function out of a procedure get_valu...
authorSaverio Proto <zioproto@gmail.com>
Wed, 10 Apr 2013 10:48:32 +0000 (10:48 +0000)
committerSaverio Proto <zioproto@gmail.com>
Wed, 10 Apr 2013 10:48:32 +0000 (10:48 +0000)
Later we want to reuse that functionality, to avoid code duplication
we make a function with clean entry and return-codes, so we can do e.g.:

get_value_for_entry "$entry" || continue

which is also better readable.

Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>
git-svn-id: svn://svn.openwrt.org/openwrt/packages/net/olsrd@36298 3c298f89-4303-0410-b956-a3cf2f4a3e73

files/olsrd.init

index 18cd42f..6ed369f 100644 (file)
@@ -232,6 +232,7 @@ config_write_options() {
        local write_func="$3"
        [ -z "$write_func" ] && output_func=echo
        local write_param="$4"
+
        local schema_entry
        local option
        local option_length
@@ -244,20 +245,30 @@ config_write_options() {
        local i
        local position
 
-       for schema_entry in $schema; do
+       get_value_for_entry()
+       {
+               local schema_entry="$1"
+
                default="${schema_entry#*[=]}"
                [ "$default" = "$schema_entry" ] && default=
                option="${schema_entry%%[=]*}"
-               IFS=':'
-               set -- $option
-               unset IFS
+
+               IFS=':'; set -- $option; unset IFS
                option="$1"
                option_type="$2"
-               validate_varname "$option" || continue
-               [ -z "$option_type" ] || validate_varname "$option_type" || continue
-               [ "$option_type" = internal ] && continue
+
+               validate_varname "$option" || return 1
+               [ -z "$option_type" ] || validate_varname "$option_type" || return 1
+               [ "$option_type" = internal ] && return 1
+
                config_get value "$cfg" "$option"
 
+               return 0
+       }
+
+       for schema_entry in $schema; do
+               get_value_for_entry "$schema_entry" || continue
+
                if [ -z "$value" ]; then
                        IFS='+'
                        set -- $default
@@ -481,6 +492,7 @@ olsrd_write_interface() {
 
        ifnames=
        config_get interfaces "$cfg" interface
+
        for interface in $interfaces; do
                if validate_varname "$interface"; then
                        if network_get_device IFNAME "$interface"; then