#!/bin/bash

# Copyright (C) 2016 NIWA Hideyuki

FULCONDRIVER=`fulcon driver-name`
PATH=/usr/lib/slot-os/lib:/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
FULCONDIR=/var/lib/fulcon
SLOTOSDIR=/var/lib/slot-os

umask 022

# function usage
usage()
{
	echo "usage: net-add SLOT_NUMBER IPADDR/MASK NIC_NUMBER "
}

lsdir() {
  ls -f --ind=none $1 | sed '/^\.\{1,2\}$/d'
}

# check options
FLG_D=0 ; NETDEV=""
FLG_G=0 ; LXCGATEWAY=""
FLG_B=0 ; LXCBR="0"

#while getopts d:g:b: OPT ; do
#  case $OPT in
#  d) FLG_D=1 ; NETDEV=$OPTARG ;;
#  g) FLG_G=1 ; LXCGATEWAY=$OPTARG ;;
#  b) FLG_B=1 ; LXCBR=$OPTARG ;;
#  \? ) usage; exit -1;;
#  esac
#done
#shift $((OPTIND - 1))

# check args
if [ $# -ne 3 ]; then
	usage
	exit -1
fi

SLOTNO=$1
IPADDR=$2
NICNO=$3
if [ ! -d $SLOTOSDIR/slot/$SLOTNO ]; then
	echo "error: $SLOTNO is not exist"
	exit -1
fi

NAME=`cat $SLOTOSDIR/slot/$SLOTNO/fulcon`

NEWOPT=""
if [ $FLG_D -ne 0 ]; then
	NEWOPT="$NEWOPT -d $NETDEV"
fi
if [ $FLG_G -ne 0 ]; then
	NEWOPT="$NEWOPT -g $LXCGATEWAY"
fi
if [ $FLG_B -ne 0 ]; then
	NEWOPT="$NEWOPT -b $LXCBR"
fi

NEWOPT="$NEWOPT $NAME $IPADDR $NICNO "

if [ x"`fulcon list $NAME | awk '{print $2}'`" != x"STOPPED" ]; then
	fulcon net-add $NEWOPT
fi

NEWOPT="\$1 `echo $NEWOPT | cut -d ' ' -f 2-`"
if [ $? -eq 0 ]; then
	mkdir -p $FULCONDIR/container/$NAME/net/
	echo "net-add $NEWOPT" > $FULCONDIR/container/$NAME/net/${NAME}_${NICNO}
	cp -pr $FULCONDIR/container/$NAME/net $SLOTOSDIR/slot/$SLOTNO/
fi

exit 0
