base-files: simplify setting device MAC
authorRafał Miłecki <rafal@milecki.pl>
Fri, 28 May 2021 06:18:08 +0000 (08:18 +0200)
committerRafał Miłecki <rafal@milecki.pl>
Fri, 28 May 2021 14:04:04 +0000 (16:04 +0200)
1. Move code above interface generation
   It results in more logical order. Device gets its config section
   above interface section.
2. Drop the loop
   We have separated code handling bridges now so $device should be
   guaranteed to contain a single device name.
3. Drop section name
   It's not required by netifd or LuCI & it's not needed by this script
   as $device contains a single device name now.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit e002179a6d2eea8640e262160030336bea54ec26)

package/base-files/files/bin/config_generate

index d895090..0dca554 100755 (executable)
@@ -133,6 +133,14 @@ generate_network() {
                type=""
        }
 
+       if [ -n "$macaddr" ]; then
+               uci -q batch <<-EOF
+                       add network device
+                       set network.@device[-1].name='$device'
+                       set network.@device[-1].macaddr='$macaddr'
+               EOF
+       fi
+
        uci -q batch <<-EOF
                delete network.$1
                set network.$1='interface'
@@ -141,17 +149,6 @@ generate_network() {
                set network.$1.proto='none'
        EOF
 
-       if [ -n "$macaddr" ]; then
-               for name in $device; do
-                       uci -q batch <<-EOF
-                               delete network.$1_${name/./_}_dev
-                               set network.$1_${name/./_}_dev='device'
-                               set network.$1_${name/./_}_dev.name='$name'
-                               set network.$1_${name/./_}_dev.macaddr='$macaddr'
-                       EOF
-               done
-       fi
-
        case "$protocol" in
                static)
                        local ipad