summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-08-20 15:38:51 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-08-20 15:38:51 +0000
commit97501ba110b24d9781a4bbc99765f20ce1f36477 (patch)
tree3314bf3b575107e4ec8ed300f05dab3c574a40e0 /package
parent2bd41cf0d4ee54ef63fc1c2d9c50c39ea72ad3b6 (diff)
upgrade to uci 0.5.0, adds list handling support
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12353 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rwxr-xr-xpackage/base-files/files/etc/functions.sh35
-rw-r--r--package/uci/Makefile6
2 files changed, 37 insertions, 4 deletions
diff --git a/package/base-files/files/etc/functions.sh b/package/base-files/files/etc/functions.sh
index 0314692c5f..28bd792010 100755
--- a/package/base-files/files/etc/functions.sh
+++ b/package/base-files/files/etc/functions.sh
@@ -11,6 +11,7 @@ N="
_C=0
NO_EXPORT=1
LOAD_STATE=1
+LIST_SEP=" "
hotplug_dev() {
env -i ACTION=$1 INTERFACE=$2 /sbin/hotplug-call net
@@ -56,6 +57,7 @@ config_load() {
reset_cb() {
config_cb() { return 0; }
option_cb() { return 0; }
+ list_cb() { return 0; }
}
reset_cb
@@ -78,11 +80,24 @@ config () {
option () {
local varname="$1"; shift
local value="$*"
-
+
export ${NO_EXPORT:+-n} "CONFIG_${CONFIG_SECTION}_${varname}=$value"
[ -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() {
local OLD="$1"
local NEW="$2"
@@ -162,6 +177,24 @@ config_foreach() {
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() {
[ -d /etc/modules.d ] && {
cd /etc/modules.d
diff --git a/package/uci/Makefile b/package/uci/Makefile
index c24ce04ed7..ee9d6dca62 100644
--- a/package/uci/Makefile
+++ b/package/uci/Makefile
@@ -8,8 +8,8 @@
include $(TOPDIR)/rules.mk
-UCI_VERSION=0.4
-UCI_RELEASE=8
+UCI_VERSION=0.5
+UCI_RELEASE=0
PKG_NAME:=uci
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_URL:=http://downloads.openwrt.org/sources
-PKG_MD5SUM:=1a671895bfaafe86087ce4374dfb8556
+PKG_MD5SUM:=5db883e535d8175a568fa202d0aed190
include $(INCLUDE_DIR)/package.mk