#!/bin/bash

LOGFILE="/tmp/set_ifcfg.log"

function add() {
    dev_path=/etc/sysconfig/network-scripts/ifcfg-$1
    if [ -e "${dev_path}" ]; then
        return 0
    fi

    touch "$dev_path"
    : >"$dev_path"
    cat <<EOT >"$dev_path"
BOOTPROTO=dhcp
BROWSER_ONLY=no
DEFROUTE=no
DEVICE=$1
DHCPRELEASE=yes
DHCPV6C=yes
IPV4_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
IPV6_FORCE_ACCEPT_RA=yes
IPV6_PEERDNS=no
IPV6C=yes
IPV6INIT=yes
NAME=$1
NM_CONTROLLED=no
ONBOOT=yes
PEERDNS=no
PERSISTENT_DHCLIENT=yes
PROXY_METHOD=none
STARTMODE=auto
TYPE=Ethernet
USERCTL=no
EOT
    /sbin/ifup "$1"
}

function remove() {
    /sbin/ifdown "$1"
    dev_path=/etc/sysconfig/network-scripts/ifcfg-$1
    if [ ! -e "${dev_path}" ]; then
        return 0
    fi
    if [ -e /usr/bin/rm ]; then
        /usr/bin/rm "$dev_path"
    elif [ -e /bin/rm ]; then
        /bin/rm "$dev_path"
    fi
}

if [ "$1" == "eth0" ]; then
    exit 0
elif [ "$1" == "" ]; then
    exit 1
fi

if [ "$2" == "add" ]; then
    add "$1" &>$LOGFILE
elif [ "$2" == "remove" ]; then
    remove "$1" &>$LOGFILE
else
    exit 1
fi
