fixes for common config functions

SVN-Revision: 4071
lede-17.01
Felix Fietkau 2006-06-25 15:32:30 +00:00
parent 9813eb4983
commit 292fb9eaee
1 changed files with 27 additions and 15 deletions

View File

@ -5,6 +5,8 @@ alias debug=${DEBUG:-:}
N="
"
_C=0
# valid interface?
if_valid () (
ifconfig "$1" >&- 2>&- ||
@ -23,18 +25,24 @@ append() {
eval "export ${var}=\"\${${var}:+\${${var}}${value:+$sep}}$value\""
}
config_cb() {
reset_cb() {
config_cb() {
return 0
}
option_cb() {
}
option_cb() {
return 0
}
}
reset_cb
config () {
config_cb "$@"
_C=$((${_C:-0} + 1))
export CONFIG_SECTION="${2:-cfg${_C}}"
export CONFIG_${CONFIG_SECTION}_TYPE="$1"
local type="$1"
local name="$2"
_C=$(($_C + 1))
name="${name:-cfg${_C}}"
config_cb "$type" "$name"
export CONFIG_SECTION="$name"
export CONFIG_${CONFIG_SECTION}_TYPE="$type"
}
option () {
@ -53,12 +61,16 @@ config_clear() {
}
config_load() {
local CD=""
if [ \! -e "$1" -a -e "/etc/config/$1" ]; then
cd /etc/config && local CD=1
fi
[ -e "$1" ] && . $1
${CD:+cd - >/dev/null}
local DIR="./"
_C=0
[ \! -e "$1" -a -e "/etc/config/$1" ] && {
DIR="/etc/config/"
}
[ -e "$DIR$1" ] && {
CONFIG_FILENAME="$DIR$1"
. ${CONFIG_FILENAME}
} || return 1
${CD:+cd -} >/dev/null
${CONFIG_SECTION:+config_cb}
}