#!/bin/sh
DIR=$1
SCRIPT=$DIR/$2
\rm $SCRIPT 2> /dev/null

echo '#!/bin/sh' > $SCRIPT
echo 'LOG='$2'.log' >> $SCRIPT
echo 'cp -pf '$DIR/$2'.img '$DIR'/es.img' >> $SCRIPT
echo 'vformat '$DIR'/disk.img > /dev/null 2>&1' >> $SCRIPT
echo 'vcopy '$DIR'/disk.img '$DIR'/../../os/bootsect/es.ldr > /dev/null 2>&1' >> $SCRIPT
echo 'vcopy '$DIR'/disk.img '$DIR'/es.img > /dev/null 2>&1' >> $SCRIPT
echo 'vcopy '$DIR'/disk.img '$DIR'/../main.elf > /dev/null 2>&1' >> $SCRIPT
echo 'vcopy '$DIR'/disk.img '$DIR'/../server.elf > /dev/null 2>&1' >> $SCRIPT
echo 'vcopy '$DIR'/disk.img '$DIR'/../client.elf > /dev/null 2>&1' >> $SCRIPT
echo '' >> $SCRIPT
echo 'vcopy '$DIR'/disk.img '$DIR'/../binder.elf > /dev/null 2>&1' >> $SCRIPT
echo 'vcopy '$DIR'/disk.img '$DIR'/../binderClient.elf > /dev/null 2>&1' >> $SCRIPT
echo 'vcopy '$DIR'/disk.img '$DIR'/../location.elf > /dev/null 2>&1' >> $SCRIPT
echo 'vcopy '$DIR'/disk.img '$DIR'/../locationClient.elf > /dev/null 2>&1' >> $SCRIPT
echo '' >> $SCRIPT
echo '# run QEMU on the background.' >> $SCRIPT

FAT32=`grep fat32 "$2"`
CREATEMAX=`grep createmax "$2"`

echo '(qemu -hda '$DIR'/disk.img -serial stdio -soundhw sb16 $QFLAGS > '$DIR'/$LOG 2>&1) &' >> $SCRIPT
echo '' >> $SCRIPT
echo '# Keep PID.' >> $SCRIPT
echo 'QEMU=$!' >> $SCRIPT
echo 'TIME=0' >> $SCRIPT
echo 'RET=1' >> $SCRIPT

if [ -n "$FAT32" ]; then
echo '# No timeout.' >> $SCRIPT
echo 'while [ true ]' >> $SCRIPT
echo 'do' >> $SCRIPT
elif [ -n "$CREATEMAX" ]; then
echo '# No timeout.' >> $SCRIPT
echo 'while [ true ]' >> $SCRIPT
echo 'do' >> $SCRIPT
else
echo '# Timeout after 60 seconds.' >> $SCRIPT
echo 'while [ $TIME -lt 60 ]' >> $SCRIPT
echo 'do' >> $SCRIPT
fi
echo '    sleep 1' >> $SCRIPT
echo '    PASS=`grep done. '$DIR'/$LOG`' >> $SCRIPT
echo '    FAIL=`grep Fail '$DIR'/$LOG`' >> $SCRIPT
echo '    if [ -n "$FAIL" ]; then' >> $SCRIPT
echo '        break;' >> $SCRIPT
echo '    fi' >> $SCRIPT
echo '    if [ -n "$PASS" ]; then' >> $SCRIPT
echo '        RET=0' >> $SCRIPT
echo '        break;' >> $SCRIPT
echo '    fi' >> $SCRIPT
echo '    RUNNING=`ps -p $QEMU | grep $QEMU`' >> $SCRIPT
echo '    if [ -z "$RUNNING" ]; then' >> $SCRIPT
echo '        break;' >> $SCRIPT
echo '    fi' >> $SCRIPT
echo '    TIME=`expr $TIME + 1`' >> $SCRIPT
echo 'done' >> $SCRIPT
echo 'stty sane' >> $SCRIPT
echo '' >> $SCRIPT
echo 'RUNNING=`ps $QEMU | grep $QEMU`' >> $SCRIPT
echo 'if [ -n "$RUNNING" ]; then' >> $SCRIPT
echo '    sleep 1' >> $SCRIPT
echo '    kill -9 $QEMU' >> $SCRIPT
echo 'fi' >> $SCRIPT
echo '' >> $SCRIPT
echo 'stty sane' >> $SCRIPT
echo 'cat '$DIR'/$LOG' >> $SCRIPT
echo 'exit $RET' >> $SCRIPT

chmod u+x $SCRIPT

