[package] add mac-to-devinfo (#5373)
git-svn-id: svn://svn.openwrt.org/openwrt/packages@16712 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
122
net/mac-to-devinfo/files/devinfo-functions.sh
Normal file
122
net/mac-to-devinfo/files/devinfo-functions.sh
Normal file
@ -0,0 +1,122 @@
|
||||
#!/bin/sh
|
||||
# Shell script compatibility wrappers for /sbin/uci
|
||||
#
|
||||
# Copyright (C) 2008 Felix Fietkau <nbd@openwrt.org>
|
||||
# Copyright (C) 2009 Daniel Dickinson <crazycshore@gmail.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
# $UCI and $UCISTATE must be set
|
||||
|
||||
CONFIG_APPEND=
|
||||
_C=0
|
||||
LOAD_STATE=1
|
||||
LIST_SEP=" "
|
||||
|
||||
config_load() {
|
||||
local PACKAGE="$1"
|
||||
local DATA
|
||||
local RET
|
||||
|
||||
_C=0
|
||||
|
||||
if [ -z "$CONFIG_APPEND" ]; then
|
||||
CONFIG_SECTIONS=
|
||||
CONFIG_NUM_SECTIONS=0
|
||||
CONFIG_SECTION=
|
||||
fi
|
||||
export NO_EXPORT=
|
||||
DATA="$($UCI -P $UCISTATE -S -n export "$PACKAGE" 2>/dev/null)"
|
||||
RET="$?"
|
||||
[ "$RET" != 0 -o -z "$DATA" ] || eval "$DATA"
|
||||
unset DATA
|
||||
|
||||
${CONFIG_SECTION:+config_cb}
|
||||
return "$RET"
|
||||
}
|
||||
|
||||
reset_cb() {
|
||||
config_cb() { return 0; }
|
||||
option_cb() { return 0; }
|
||||
list_cb() { return 0; }
|
||||
}
|
||||
reset_cb
|
||||
config () {
|
||||
local cfgtype="$1"
|
||||
local name="$2"
|
||||
|
||||
CONFIG_NUM_SECTIONS=$(($CONFIG_NUM_SECTIONS + 1))
|
||||
name="${name:-cfg$CONFIG_NUM_SECTIONS}"
|
||||
append CONFIG_SECTIONS "$name"
|
||||
[ -n "$NO_CALLBACK" ] || config_cb "$cfgtype" "$name"
|
||||
CONFIG_SECTION="$name"
|
||||
eval "CONFIG_${CONFIG_SECTION}_TYPE=\"$cfgtype\""
|
||||
}
|
||||
|
||||
option () {
|
||||
local varname="$1"; shift
|
||||
local value="$*"
|
||||
|
||||
eval "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_get() {
|
||||
case "$3" in
|
||||
"") eval "echo \"\${CONFIG_${1}_${2}}\"";;
|
||||
*) eval "$1=\${CONFIG_${2}_${3}}";;
|
||||
esac
|
||||
}
|
||||
|
||||
config_foreach() {
|
||||
local function="$1"
|
||||
[ "$#" -ge 1 ] && shift
|
||||
local type="$1"
|
||||
[ "$#" -ge 1 ] && shift
|
||||
local section cfgtype
|
||||
|
||||
[ -z "$CONFIG_SECTIONS" ] && return 0
|
||||
for section in ${CONFIG_SECTIONS}; do
|
||||
config_get cfgtype "$section" TYPE
|
||||
[ -n "$type" -a "x$cfgtype" != "x$type" ] && continue
|
||||
$function "$section" "$@"
|
||||
done
|
||||
}
|
||||
|
||||
package() {
|
||||
return 0
|
||||
}
|
||||
|
||||
append() {
|
||||
local var="$1"
|
||||
local value="$2"
|
||||
local sep="${3:- }"
|
||||
|
||||
eval "$var=\${$var:+\${$var}\${value:+\$sep}}\$value"
|
||||
}
|
||||
|
Reference in New Issue
Block a user