#!/bin/sh
#
#  ifdown [interface name]
#

usage ()
{
    echo "usage:  ifdown [netInterface]"
    echo "  deconfigure and disable the specified network interface"
    exit 1
}


ifAliasDown() {
  echo "Shutting down interface $1 ..."
  fn=/var/run/*$1.pid
  pidfns=`echo $fn`
  [ "$pidfns" = "$fn" ] || for pidfn in $pidfns; do
    kill `cat $pidfn` 2>/dev/null
  done
  ifconfig $1 down 2>/dev/null
}

eachAlias() {
  cfg=/etc/sysconfig/ifcfg-
  aliases=`echo $cfg$2:*`
  [ "$aliases" = $cfg$2:\* ] || {
    for alias in $aliases; do
       $1 ${alias#$cfg}
    done
  }
}

case "$1" in
  -*|*/*|'') #any flag is a request for help
    usage    
  ;;
  
  *) #anything else must be the name of an interface or alias
    if [ "$1" = "${1%:*}" ]; then  #if not an alias
      eachAlias ifAliasDown $1
      ifAliasDown $1
    else
      ifAliasDown $1
    fi
  ;;
esac
