#! /bin/sh
#
### BEGIN INIT INFO
# Provides:       vmware-netcfg
# Required-Start: $network
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:  2 3 5
# Default-Stop:
# Description:    Configure the network interfaces and set up hostname for VMware images
### END INIT INFO

stub=ifcfg-eth-id
ifc=eth0

cd /etc/sysconfig/network

case $1 in
start)
	. /etc/rc.status
	echo -n "Setting hostname and VMware NIC Configuration"

	/sbin/rcnetwork stop

	/sbin/ifconfig eth0 up;
	mac=$(/sbin/ifconfig | grep ^$ifc | awk '{ print $5; exit }')
	busid=$(/sbin/lspci | awk '/Ethernet/ {print $1; exit}')
	postfix=$(echo $mac | awk -F: '{print $4 "-" $5 "-" $6 }')

	newname=$stub-$mac;
	hname=$(hostname)
	dom=$(dnsdomainname)

#	set -x

	# Wenn kein passendes Konfigfile fuer die MAC-Adresse existiert, wird eins erzeugt...
	test -f "$newname" || {
		cat >"$newname" <<-EOF
		BOOTPROTO='dhcp'
		MTU=''
		REMOTE_IPADDR=''
		STARTMODE='onboot'
		_nm_name='bus-pci-0000:00:11.0'
		EOF
		# und die passende busid eingesetzt
		sed -i -r -e "/^_nm_name/s/(.+bus-pci-)(.+)(')/\1$busid\3/" "$newname";
	}

#		UNIQUE='7EWs.weGuQ9ywYPF'

	# einen eindeutigen Hostnamen bauen, die letzten drei Bytes der MAC-Adresse werden verwendet
	case $hname in
		linuxvm|vm|vmlinux)
			sed -i -r -e "/$hname/s/^([^ \t]+).+$/\1\t$hname-$postfix.$dom\t$hname-$postfix/g" /etc/hosts
			echo $hname-$postfix >/etc/HOSTNAME
			hostname --file /etc/HOSTNAME
		;;
	esac

	/sbin/rcnetwork start
	rc_status -v
	rc_exit
	;;

unconfig)
#	set -x

	# hostname wieder auf 'linuxvm' setzen
	hname='linuxvm';
	dom=$(dnsdomainname)
	sed -i -r -e "/$(hostname)/s/^([^ \t]+).+$/\1\t$hname.$dom\t$hname/" /etc/hosts
	echo $hname >/etc/HOSTNAME
	hostname --file /etc/HOSTNAME

	# Konfiguration der Netzwerkkarte loeschen
	mac=$(/sbin/ifconfig | grep ^$ifc | awk '{ print $5; exit }')
	test -f $stub-$mac && rm $stub-$mac

	# ssh-Hostkeys loeschen, werden beim Neustart automatisch neu generiert
	rm /etc/ssh/*host* 2>/dev/null
	;;
esac
