]> git.ipfire.org Git - thirdparty/dracut.git/blob - modules.d/40network/parse-vlan.sh
Ignore more generated files
[thirdparty/dracut.git] / modules.d / 40network / parse-vlan.sh
1 #!/bin/sh
2 #
3 # Format:
4 # vlan=<vlanname>:<phydevice>
5 #
6
7 # return if vlan already parsed
8 [ -n "$vlanname" ] && return
9
10 # Check if vlan parameter is valid
11 if getarg vlan= >/dev/null ; then
12 :
13 fi
14
15 parsevlan() {
16 local v=${1}:
17 set --
18 while [ -n "$v" ]; do
19 set -- "$@" "${v%%:*}"
20 v=${v#*:}
21 done
22
23 unset vlanname phydevice
24 case $# in
25 2) vlanname=$1; phydevice=$2 ;;
26 *) die "vlan= requires two parameters" ;;
27 esac
28 }
29
30 unset vlanname phydevice
31
32 if getarg vlan >/dev/null; then
33 # Read vlan= parameters if they exist
34 vlan="$(getarg vlan=)"
35 if [ ! "$vlan" = "vlan" ]; then
36 parsevlan "$(getarg vlan=)"
37 fi
38
39 echo "$phydevice" > /tmp/vlan.${phydevice}.phy
40 echo "$vlanname" > /tmp/vlan.${vlanname}.${phydevice}
41 return
42 fi