From 021fa432447bd7b447ca39738040698db39d751b Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Mon, 5 Nov 2018 15:28:18 +0100 Subject: Initial commit Signed-off-by: David Oberhollenzer --- scripts/ifrename.sh.in | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 scripts/ifrename.sh.in (limited to 'scripts/ifrename.sh.in') diff --git a/scripts/ifrename.sh.in b/scripts/ifrename.sh.in new file mode 100755 index 0000000..0820c94 --- /dev/null +++ b/scripts/ifrename.sh.in @@ -0,0 +1,47 @@ +#!/bin/sh +NAMERULES="@ETCPATH@/netcfg/ifrename" +TMPPATH="/tmp/ifrename" + +[ -f "$NAMERULES" ] || exit 0 + +mkdir -p "$TMPPATH" + +for IFPATH in /sys/class/net/*; do + [ "$IFPATH" == "/sys/class/net/lo" ] && continue + + IF=`basename $IFPATH` + MAC=`cat $IFPATH/address` + + grep "^[^,]\+,[^,]\+,[a-zA-Z0-9]\+$" $NAMERULES | while read LINE; + do + NAMECMP=$(echo $LINE | cut -d',' -f1) + ADDRCMP=$(echo $LINE | cut -d',' -f2) + RULE=$(echo $LINE | cut -d',' -f3) + + case $IF in ($NAMECMP) ;; *) continue;; esac + case $MAC in ($ADDRCMP) ;; *) continue;; esac + + echo "$MAC,$IF" >> "$TMPPATH/$RULE" + break + done +done + +for FNAME in $TMPPATH/*; do + [ ! -f "$FNAME" ] && break + + IDX=0 + PREFIX=$(basename $FNAME) + + sort -t',' -k1 -u $FNAME | while read LINE; + do + OLDNAME=$(echo $LINE | cut -d',' -f2) + NEWNAME="$PREFIX$IDX" + IDX=`expr $IDX + 1` + + ip link set "$OLDNAME" name "$NEWNAME" + done + + rm "$FNAME" +done + +rmdir "$TMPPATH" -- cgit v1.2.3