X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/2d32a51fd3a4a914dd4940281ddb504ead47506c..a53693f2f5dc5fea6eac79a71d7c7fb9002f49b7:/package/base-files/default/etc/functions.sh?ds=sidebyside diff --git a/package/base-files/default/etc/functions.sh b/package/base-files/default/etc/functions.sh index 03fd23807..f7cb878bc 100755 --- a/package/base-files/default/etc/functions.sh +++ b/package/base-files/default/etc/functions.sh @@ -10,13 +10,6 @@ N=" _C=0 -# valid interface? -if_valid () ( - ifconfig "$1" >&- 2>&- || - [ "${1%%[0-9]}" = "br" ] || - { debug "# missing interface '$1' ignored"; false; } -) - hotplug_dev() { env -i ACTION=$1 INTERFACE=$2 /sbin/hotplug net } @@ -25,7 +18,7 @@ append() { local var="$1" local value="$2" local sep="${3:- }" - eval "export ${var}=\"\${${var}:+\${${var}}${value:+$sep}}$value\"" + eval "export ${var}=\"\${${var}:+\${${var}}${value:+$sep}}\$value\"" } reset_cb() { @@ -39,13 +32,13 @@ reset_cb() { reset_cb config () { - local type="$1" + local cfgtype="$1" local name="$2" _C=$(($_C + 1)) name="${name:-cfg${_C}}" - config_cb "$type" "$name" + config_cb "$cfgtype" "$name" export CONFIG_SECTION="$name" - export CONFIG_${CONFIG_SECTION}_TYPE="$type" + export CONFIG_${CONFIG_SECTION}_TYPE="$cfgtype" } option () { @@ -54,6 +47,26 @@ option () { option_cb "$varname" "$*" } +config_rename() { + local OLD="$1" + local NEW="$2" + local oldsetting + local newvar + + [ -z "$OLD" -o -z "$NEW" ] && return + for oldsetting in `set | grep ^CONFIG_${OLD}_ | \ + sed -e 's/\(.*\)=.*$/\1/'` ; do + newvar="CONFIG_${NEW}_${oldsetting##CONFIG_${OLD}_}" + eval "${newvar}=\${$oldsetting}" + unset "$oldsetting" + done + [ "$CONFIG_SECTION" = "$OLD" ] && CONFIG_SECTION="$NEW" +} + +config_unset() { + config_set "$1" "$2" "" +} + config_clear() { [ -z "$CONFIG_SECTION" ] && return for oldsetting in `set | grep ^CONFIG_${CONFIG_SECTION}_ | \ @@ -64,6 +77,7 @@ config_clear() { } config_load() { + CONFIG_SECTION= local DIR="./" _C=0 [ \! -e "$1" -a -e "/etc/config/$1" ] && { @@ -79,7 +93,7 @@ config_load() { config_get() { case "$3" in - "") eval "echo \${CONFIG_${1}_${2}}";; + "") eval "echo \"\${CONFIG_${1}_${2}}\"";; *) eval "$1=\"\${CONFIG_${2}_${3}}\"";; esac } @@ -93,7 +107,14 @@ load_modules() { } include() { - for file in $(ls /lib/$1/*.sh 2>/dev/null); do + for file in $(ls $1/*.sh 2>/dev/null); do . $file done } + +find_mtd_part() { + local PART="$(grep "\"$1\"" /proc/mtd | awk -F: '{print $1}')" + PART="${PART##mtd}" + echo "${PART:+/dev/mtdblock/$PART}" +} +