diff options
author | Felix Fietkau <nbd@openwrt.org> | 2008-08-20 15:38:51 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2008-08-20 15:38:51 +0000 |
commit | 8a08f95e42ee01a4fcce3824811c72f437cde942 (patch) | |
tree | 6c2936af1aac5e5dd89698e28ca1385164825038 | |
parent | f52f0ecb9c69a0f25a04de985108f7222aa596ed (diff) | |
download | mtk-20170518-8a08f95e42ee01a4fcce3824811c72f437cde942.zip mtk-20170518-8a08f95e42ee01a4fcce3824811c72f437cde942.tar.gz mtk-20170518-8a08f95e42ee01a4fcce3824811c72f437cde942.tar.bz2 |
upgrade to uci 0.5.0, adds list handling support
SVN-Revision: 12353
-rwxr-xr-x | package/base-files/files/etc/functions.sh | 35 | ||||
-rw-r--r-- | package/uci/Makefile | 6 |
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 0314692..28bd792 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 c24ce04..ee9d6dc 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 |