#!/bin/bash

# Copyright (C) 2015-2016 NIWA Hideyuki

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

RCODE=0

usage()
{
	echo "usage: sysgen [ -c IMAGE ] NAME NAME ..."
	echo "       sysgen [-n REPEAT_NUMBER ] [ -c IMAGE ] NAME"
}

# check options
OPT_FLG=""
FLG_N=0; RNUM=0
FLG_C=0; IMAGENAME=`fulcon default-image`

while getopts n:c: OPT
do
  case $OPT in
    "n" ) FLG_N=1; RNUM=$OPTARG;;
    "c" ) FLG_C=1; IMAGENAME=$OPTARG;;
    \?  ) usage; exit -1;;
  esac
done

shift `expr $OPTIND - 1`

if [ x"$IMAGENAME" == x"" ]; then
	echo "error: can't find image:" $IMAGENAME
	exit -1
fi

IMAGE1=`echo $IMAGENAME | awk '{print $1}'`
if [ x"$IMAGE1" == x"usage:" ]; then
	usage
	exit -1
fi

fulcon ls-image >& /dev/null
if [ $? -ne 0 ]; then
	echo "error: can't find image:" $IMAGENAME
	exit -1
fi

fulcon ls-image | awk 'BEGIN{r=-1}{if ($1 == "'$IMAGENAME'") r=0}END{exit r}'
if [ $FLG_N -eq 1 ]; then
	if [ $# -ne 1 ]; then
		usage
		exit -1
	fi
	NAME=$1
	if [ $RNUM -gt 0 -a $RNUM -lt 1000 ]; then
		for i in `seq $RNUM`
		do
			N=`printf "%04d" $i`
			lib-sysgen $OPT_FLG $NAME$N $IMAGENAME
			if [ $? -ne 0 ]; then
				RCODE=-1
			fi
			mkdir -p $FULCONDIR/container/$NAME$N/net
		done;
		exit $RCODE
	else
		echo "REPEAT_NUMBER must be [1...999]"
		exit -1
	fi

fi

if [ $# -ge 1 ]; then
	NAMES=$@
else
	usage
	exit -1
fi

if [ x"$NAMES" == x"sysgen" ]; then
	usage
	exit -1
fi

for i in $NAMES
do
	mkdir -p $FULCONDIR/container/$i/net
	lib-sysgen $OPT_FLG $i $IMAGENAME
	if [ $? -ne 0 ]; then
		RCODE=-1
	fi
done

exit $RCODE


