base-files: add mmc_get_mac_ascii function
authorDaniel Golle <daniel@makrotopia.org>
Fri, 17 Nov 2023 00:02:05 +0000 (00:02 +0000)
committerDaniel Golle <daniel@makrotopia.org>
Sat, 9 Dec 2023 22:47:10 +0000 (22:47 +0000)
Similar to the *_get_mac_binary function, also split the common parts
off mtd_get_mac_ascii into new get_mac_ascii function and introduce
mmc_get_mac_ascii which uses it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
package/base-files/files/lib/functions/system.sh

index d06354b01f45ef0f66859076846d5315d701a3eb..107e67835a2b14006d60bc122b5f22457fb72724 100644 (file)
@@ -61,11 +61,21 @@ find_mtd_chardev() {
        echo "${INDEX:+$PREFIX$INDEX}"
 }
 
+get_mac_ascii() {
+       local part="$1"
+       local key="$2"
+       local mac_dirty
+
+       mac_dirty=$(strings "$part" | sed -n 's/^'"$key"'=//p')
+
+       # "canonicalize" mac
+       [ -n "$mac_dirty" ] && macaddr_canonicalize "$mac_dirty"
+}
+
 mtd_get_mac_ascii() {
        local mtdname="$1"
        local key="$2"
        local part
-       local mac_dirty
 
        part=$(find_mtd_part "$mtdname")
        if [ -z "$part" ]; then
@@ -73,10 +83,7 @@ mtd_get_mac_ascii() {
                return
        fi
 
-       mac_dirty=$(strings "$part" | sed -n 's/^'"$key"'=//p')
-
-       # "canonicalize" mac
-       [ -n "$mac_dirty" ] && macaddr_canonicalize "$mac_dirty"
+       get_mac_ascii "$part" "$key"
 }
 
 mtd_get_mac_encrypted_arcadyan() {
@@ -190,6 +197,19 @@ mtd_get_part_size() {
        done < /proc/mtd
 }
 
+mmc_get_mac_ascii() {
+       local part_name="$1"
+       local key="$2"
+       local part
+
+       part=$(find_mmc_part "$part_name")
+       if [ -z "$part" ]; then
+               echo "mmc_get_mac_ascii: partition $part_name not found!" >&2
+       fi
+
+       get_mac_ascii "$part" "$key"
+}
+
 mmc_get_mac_binary() {
        local part_name="$1"
        local offset="$2"