upgrade to uci 0.5.0, adds list handling support

SVN-Revision: 12353
lede-17.01
Felix Fietkau 2008-08-20 15:38:51 +00:00
parent f52f0ecb9c
commit 8a08f95e42
2 changed files with 37 additions and 4 deletions

View File

@ -11,6 +11,7 @@ N="
_C=0 _C=0
NO_EXPORT=1 NO_EXPORT=1
LOAD_STATE=1 LOAD_STATE=1
LIST_SEP=" "
hotplug_dev() { hotplug_dev() {
env -i ACTION=$1 INTERFACE=$2 /sbin/hotplug-call net env -i ACTION=$1 INTERFACE=$2 /sbin/hotplug-call net
@ -56,6 +57,7 @@ config_load() {
reset_cb() { reset_cb() {
config_cb() { return 0; } config_cb() { return 0; }
option_cb() { return 0; } option_cb() { return 0; }
list_cb() { return 0; }
} }
reset_cb reset_cb
@ -78,11 +80,24 @@ config () {
option () { option () {
local varname="$1"; shift local varname="$1"; shift
local value="$*" local value="$*"
export ${NO_EXPORT:+-n} "CONFIG_${CONFIG_SECTION}_${varname}=$value" export ${NO_EXPORT:+-n} "CONFIG_${CONFIG_SECTION}_${varname}=$value"
[ -n "$NO_CALLBACK" ] || option_cb "$varname" "$*" [ -n "$NO_CALLBACK" ] || option_cb "$varname" "$*"
} }
list() {
local varname="$1"; shift
local value="$*"
local len
config_get len "$CONFIG_SECTION" "${varname}_LENGTH"
len="$((${len:-0} + 1))"
config_set "$CONFIG_SECTION" "${varname}_ITEM$len" "$value"
config_set "$CONFIG_SECTION" "${varname}_LENGTH" "$len"
append "CONFIG_${CONFIG_SECTION}_${varname}" "$value" "$LIST_SEP"
list_cb "$varname" "$*"
}
config_rename() { config_rename() {
local OLD="$1" local OLD="$1"
local NEW="$2" local NEW="$2"
@ -162,6 +177,24 @@ config_foreach() {
done done
} }
config_list_foreach() {
[ "$#" -ge 3 ] || return 0
local section="$1"; shift
local option="$1"; shift
local function="$1"; shift
local val
local len
local c=1
config_get len "${section}" "${option}_LENGTH"
[ -z "$len" ] && return 0
while [ $c -le "$len" ]; do
config_get val "${section}" "${option}_ITEM$c"
eval "$function \"\$val\" \"$@\""
c="$(($c + 1))"
done
}
load_modules() { load_modules() {
[ -d /etc/modules.d ] && { [ -d /etc/modules.d ] && {
cd /etc/modules.d cd /etc/modules.d

View File

@ -8,8 +8,8 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
UCI_VERSION=0.4 UCI_VERSION=0.5
UCI_RELEASE=8 UCI_RELEASE=0
PKG_NAME:=uci PKG_NAME:=uci
PKG_VERSION:=$(UCI_VERSION)$(if $(UCI_RELEASE),.$(UCI_RELEASE)) PKG_VERSION:=$(UCI_VERSION)$(if $(UCI_RELEASE),.$(UCI_RELEASE))
@ -17,7 +17,7 @@ PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://downloads.openwrt.org/sources PKG_SOURCE_URL:=http://downloads.openwrt.org/sources
PKG_MD5SUM:=1a671895bfaafe86087ce4374dfb8556 PKG_MD5SUM:=5db883e535d8175a568fa202d0aed190
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk