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

# Syntax: action2qemu script [[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 SCRIPT=$1
	shift
else
	echo "Syntax: action2qemu script [[vm1][..|vmx]]"
	exit -1
fi

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

chmod 755 $SCRIPT

for m in $VMS; do
	echo "Working on $m"
	vmp=0
	if [ ! -f /users/qemu/$m.qemu ]; then
			echo "VM unaccessible. Verify NFS mount"
			exit -1
	fi
	ps auxww | grep qemu | grep -v grep | grep -q /users/qemu/$m.qemu
	if [ $? -ne 0 ]; then
		# Virtual machine alreday started
		vmp=1
		$TOOLHOME/mkqemu $m &
		sleep 300
	fi
	ssh -q -p $sp root@localhost "mkdir -p ${TOOLHOME}"
	scp -P $sp -p $SCRIPT root@localhost:${TOOLHOME}
	bn=`basename "$SCRIPT"`
	ssh -q -p $sp root@localhost "${TOOLHOME}/$bn"
	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

) 2>&1 | tee /tmp/action2qemu.log
