#!/bin/bash
#
# $Id$
#
# Script to test packages on various distributions with qemu
#

# Syntax: test2qemu [[vm1]..[vmx]]

(
dname=`dirname $0`
prem=`echo $dname |cut -c1`
if [ _${prem} = _"/" ]; then
	export TOOLHOME=$dname
else
	export TOOLHOME=${PWD}/$dname
fi

. $TOOLHOME/common-env
. $TOOLHOME/distro-env
. $TOOLHOME/qemu-env

if [ _"$1" = _"" ]; then
	export VMS=`cat ${TOOLHOME}/DISTROS` 
	single=0
else
	export VMS="$*"
	single=1
fi

for m in $VMS; do
	echo "Working on $m"
	vmp=0
	if [ ! -f /users/qemu/pxe.qemu ]; then
			echo "VM pxe unaccessible. Verify NFS mount"
			rm -rf $MONDOTMP
			exit -1
	fi
	ps auxww | grep qemu | grep -v grep | grep -q /users/qemu/pxe-$m.qemu
	if [ $? -ne 0 ]; then
		# Virtual machine not alreday started
		vmp=1
		sudo mkdir -p /pub/users/svg/mnt
		sudo mount -o loop /pub/users/svg/mondo/images/test-mondo-$m /pub/users/svg/mnt
		cp -a /pub/users/svg/mnt/vmlinuz /users/qemu/pxe/$m
		cp -a /pub/users/svg/mnt/initrd.img /users/qemu/pxe/$m.img
		sudo umount /pub/users/svg/mnt
		cp /users/qemu/pxe.qemu /users/qemu/pxe-$m.qemu
		export QEMUOPT="-kernel /users/qemu/pxe/$m -initrd /users/qemu/pxe/$m.img -append 'load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=65536 rw root=/dev/ram iso_mode pxe prefix=test-mondo-$m ipconf=eth0:dhcp nfsmount=flecha.home.musique-ancienne.org:/users/svg/mondo/images'"
		# ramdisk_blocksize=1024
		$TOOLHOME/mkqemu pxe-$m &
		sleep 300
	fi
	ssh -q -p $sp bruno@localhost "cd / ; rm -rf ~bruno/mondo ~bruno/RPMS/BUILD/* ~bruno/RPMS/tmp/* /tmp/* ; tar xfz ~bruno/test-mondo.tar.gz ; $MONDOTMP/test-mondo " | tee $MONDOTMP/mkvm.log
	if [ $vmp -eq 1 ]; then
		ssh -q -p $sp root@localhost "halt -p"
		sleep 300
		proces=`ps auxww | grep qemu | grep -v grep | grep /users/qemu/$m.qemu | awk '{print $2}'`
		if [ "$proces" != "" ]; then
			kill $proces
			sleep 10
		fi
	fi
done

# Should be removed at the end
rm -rf $MONDOTMP
) 2>&1 | tee /tmp/test2qemu.log
