#!/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'/2hd.img > /dev/null 2>&1' >> $SCRIPT
echo 'vcopy '$DIR'/2hd.img '$DIR'/../../../bootsect/es.ldr > /dev/null 2>&1' >> $SCRIPT
echo 'vcopy '$DIR'/2hd.img '$DIR'/es.img > /dev/null 2>&1' >> $SCRIPT
echo '' >> $SCRIPT
echo '# run QEMU on the background.' >> $SCRIPT

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

if [ -n "$FAT32" ]; then
    echo 'vformat '$DIR'/fat32.img > /dev/null 2>&1' >> $SCRIPT
    echo '(qemu -fda '$DIR'/2hd.img -hda '$DIR'/fat32.img -serial stdio -boot a -soundhw sb16 $QFLAGS > '$DIR'/$LOG 2>&1) &' >> $SCRIPT
else
    echo '(qemu -fda '$DIR'/2hd.img -hda '$DIR'/fat16_5MB.img -serial stdio -boot a -soundhw sb16 $QFLAGS > '$DIR'/$LOG 2>&1) &' >> $SCRIPT
fi
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 120 seconds.' >> $SCRIPT
echo 'while [ $TIME -lt 120 ]' >> $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 '    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
