#!/bin/bash
# a quickly written simple script for renaming network devices based on mac address to be solely used with udev

main(){
  local results=$(ip address show dev $1 | grep -o '\<link/\<[[:alnum:]]*\> ..:..:..:..:..:..\>' | sed -e 's|link/\<[[:alnum:]]*\> ||' -e 's|:||g')
  local old_prefix=
  local new_prefix=
  local found=no

  for i in eth ppp wlan isdn usb ; do
    if [[ $(echo $1 | grep "^$i") != "" ]] ; then
      old_prefix=$i
      new_prefix=net
      found=yes
      break;
    fi
  done

  if [[ $found == "no" ]] ; then
    for i in ifb msh bat; do
      if [[ $(echo $1 | grep "^$i") != "" ]] ; then
        old_prefix=$i
        new_prefix=$i
        found=yes
        break;
      fi
    done
  fi

  if [[ $found == "no" ]] ; then
    for i in tunl gre rose nr tap plip irlan slip sit vmnet pan bnep br wmaster net firewire ; do
      if [[ $(echo $1 | grep "^$i") != "" ]] ; then
        echo $1
        return 0
      fi
    done
  fi

  if [[ $results == "" ]] ; then
    if [[ $found == "no" ]] ; then
      echo $1
    else
      echo $1 | sed -e "s|$old_prefix|$new_prefix|"
    fi
  else
    echo $new_prefix$results
  fi
}

main $1

unset main
