fixes for common config functions
SVN-Revision: 4071
This commit is contained in:
parent
9813eb4983
commit
292fb9eaee
1 changed files with 27 additions and 15 deletions
|
@ -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() {
|
||||
return 0
|
||||
}
|
||||
option_cb() {
|
||||
return 0
|
||||
reset_cb() {
|
||||
config_cb() {
|
||||
return 0
|
||||
}
|
||||
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}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue