#!/bin/bash

# Copyright (C) 2015 NIWA Hideyuki

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

usage()
{
	echo "usage: net-info NAME"
}

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

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

if [ x"$1" == x"net-info" ]; then
	CNAME=""
else
	CNAME=$1
fi

net-fulcon-info()
{
	LISTS=`fulcon list | awk '{printf "%s:%s:%s\n",$1,$2,$3}'`
	for i in `lsdir $FULCONDIR/container`
	do
		NAME=$i
		if [ ! -d $FULCONDIR/container/$NAME/net ]; then
			continue
		fi
		if [ x"$LISTS" != x"" ]; then
			for k in `echo $LISTS`
			do
				NM=`echo $k | awk -F : '{print $1}'`
				ST=`echo $k | awk -F : '{print $2}'`
				if [ x"$NM" == x"$NAME" ]; then
					STAT=$ST
					break
				fi
			done
		fi
		if [ x"$STAT" == x"RUNNING" ]; then
			if [ x"$NAME" != x"" ]; then
				fulcon-ip $NAME | \
				  awk '{printf "%s\teth0\t\t%s\n","'$NAME'",$1}'
			fi
		fi
		if [ -d $FULCONDIR/container/$NAME/net ]; then
			for j in `lsdir $FULCONDIR/container/$NAME/net`
			do
				cat $FULCONDIR/container/$NAME/net/$j | \
				  awk '{printf "%s\tvg%s_%s\t%s\n","'$NAME'","'$NAME'",$4,$3}'
			done
		fi
	done
}

if [ x"$CNAME" == x"" ]; then
	net-fulcon-info | sort
else
	net-fulcon-info | awk '{if($1=="'$CNAME'")print $0}' | sort
fi

exit 0
