testvm:
#!/bin/bash
# Test a parrot branch on some of my remote machines (vm's or whatever)
# must be started in the root build_dir of the branch
declare -a vm_name
declare -a vm_dir
# which branch? trunk cygwin070patches gsoc_pdd09 exceptionmagic ...
base=$(basename `pwd`)
# define my various vm's by name and dir with the parrot tree
n=0
# freebsd7 with gcc-4.2 and llvm-2.3
vm_name[$n]=freebsd
# on freebsd I test only one branch: trunk or cygwin070patches or whatever
vm_dir[$n]=/usr/src/perl/parrot
let n+=1
# define llvm conf_args: cc and link
vm_name[$n]=freebsd
vm_dir[$n]=/usr/src/perl/parrot
vm_conf[$n]="--cc=llvm-gcc --link=llvm-ld"
let n+=1
# on debian 4 I test trunk and cygwin070patches
# gcc-4.1.2
vm_name[$n]=debian
vm_dir[$n]=/usr/src/perl/parrot/$base
let n+=1
#vm_name[$n]=gentoo-vm
#vm_dir[$n]=/usr/src/perl/parrot
#let n+=1
#vm_name[$n]=fedora
#vm_dir[$n]=/usr/src/perl/parrot
#let n+=1
#vm_name[$n]=ubuntu
#vm_dir[$n]=/usr/src/perl/parrot
#let n+=1
#vm_name[$n]=centos
#vm_dir[$n]=/usr/src/perl/parrot
#let n+=1
#vm_name[$n]=solaris
#vm_dir[$n]=/usr/src/perl/parrot
#let n+=1
if [ ! -f Configure.pl ]; then
echo "$0 must be run a parrot build_dir. Configure.pl not found"
exit
fi
if [ -f Makefile ]; then
make clean realclean
fi
find -name \*.exe -o -name \*.bak -o -name \*~ -o -name \*.stackdump -delete
n=0
while [ -n "${vm_name[${n}]}" ]
do
if [ -z "${1}" -o "${1}" = "${vm_name[${n}]}" ]; then
echo "rsync -avzC --delete --exclude=.svn . ${vm_name[${n}]}:${vm_dir[${n}]}/"
rsync -avzC --delete --exclude=.svn . "${vm_name[${n}]}:${vm_dir[${n}]}/"
echo "ssh ${vm_name[${n}]} cd ${vm_dir[${n}]}; perl Configure.pl ${vm_conf[${n}]} && make all parrot_utils perl6 installable languages smoke smolder_test languages-smoke"
ssh ${vm_name[${n}]} "cd ${vm_dir[${n}]}; perl Configure.pl && make all parrot_utils perl6 installable languages smoke smolder_test languages-smoke"
fi
let n+=1
done