summaryrefslogtreecommitdiffstats
path: root/modules.d/35network-legacy/parse-vlan.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 13:54:25 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 13:54:25 +0000
commit9cb1c4df7b9ce1a9ad1312621b0f2b16a94fba3a (patch)
tree2efb72864cc69e174c9c5ee33efb88a5f1553b48 /modules.d/35network-legacy/parse-vlan.sh
parentInitial commit. (diff)
downloaddracut-9cb1c4df7b9ce1a9ad1312621b0f2b16a94fba3a.tar.xz
dracut-9cb1c4df7b9ce1a9ad1312621b0f2b16a94fba3a.zip
Adding upstream version 060+5.upstream/060+5
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'modules.d/35network-legacy/parse-vlan.sh')
-rwxr-xr-xmodules.d/35network-legacy/parse-vlan.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/modules.d/35network-legacy/parse-vlan.sh b/modules.d/35network-legacy/parse-vlan.sh
new file mode 100755
index 0000000..c23f833
--- /dev/null
+++ b/modules.d/35network-legacy/parse-vlan.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# Format:
+# vlan=<vlanname>:<phydevice>
+#
+
+parsevlan() {
+ local v="${1}":
+ set --
+ while [ -n "$v" ]; do
+ set -- "$@" "${v%%:*}"
+ v=${v#*:}
+ done
+
+ unset vlanname phydevice
+ case $# in
+ 2)
+ vlanname=$1
+ phydevice=$2
+ ;;
+ *) die "vlan= requires two parameters" ;;
+ esac
+}
+
+for vlan in $(getargs vlan=); do
+ unset vlanname
+ unset phydevice
+ if [ ! "$vlan" = "vlan" ]; then
+ parsevlan "$vlan"
+ fi
+
+ echo "phydevice=\"$phydevice\"" > /tmp/vlan."${phydevice}".phy
+ {
+ echo "vlanname=\"$vlanname\""
+ echo "phydevice=\"$phydevice\""
+ } > /tmp/vlan."${vlanname}"."${phydevice}"
+done