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
local write_func="$3"
[ -z "$write_func" ] && output_func=echo
local write_param="$4"
local write_func="$3"
[ -z "$write_func" ] && output_func=echo
local write_param="$4"
local schema_entry
local option
local option_length
local schema_entry
local option
local option_length
- for schema_entry in $schema; do
+ get_value_for_entry()
+ {
+ local schema_entry="$1"
+
default="${schema_entry#*[=]}"
[ "$default" = "$schema_entry" ] && default=
option="${schema_entry%%[=]*}"
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"
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"
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
if [ -z "$value" ]; then
IFS='+'
set -- $default
ifnames=
config_get interfaces "$cfg" interface
ifnames=
config_get interfaces "$cfg" interface
for interface in $interfaces; do
if validate_varname "$interface"; then
if network_get_device IFNAME "$interface"; then
for interface in $interfaces; do
if validate_varname "$interface"; then
if network_get_device IFNAME "$interface"; then