make find_mtd_part work without devfs
[openwrt-10.03/.git] / package / base-files / files / etc / functions.sh
index 931f4be472d01a799b690a917570d323f3488471..c29ae772ac3b5bc02e12c5e6817250e5c3aed845 100755 (executable)
@@ -125,10 +125,13 @@ config_set() {
 
 config_foreach() {
        local function="$1"
-       local section
+       local type="$2"
+       local section cfgtype
        
        [ -z "$CONFIG_SECTIONS" ] && return 0
        for section in ${CONFIG_SECTIONS}; do
+               config_get cfgtype "$section" TYPE
+               [ -n "$type" -a "$cfgtype" != "$type" ] && continue
                eval "$function \"\$section\""
        done
 }
@@ -148,9 +151,11 @@ include() {
 
 find_mtd_part() {
        local PART="$(grep "\"$1\"" /proc/mtd | awk -F: '{print $1}')"
+       local PREFIX=/dev/mtdblock
        
        PART="${PART##mtd}"
-       echo "${PART:+/dev/mtdblock/$PART}"
+       [ -d /dev/mtdblock ] && PREFIX=/dev/mtdblock/
+       echo "${PART:+$PREFIX$PART}"
 }
 
 strtok() { # <string> { <variable> [<separator>] ... }