#!/bin/bash

Xvfb :3 &
xpid=$!
export DISPLAY=:3

do_demon5()
{
  d=$1
  e=$((400-d))
  echo demon5: $d
  printf -v d0 "%03d" $d
  demofile=demon5_$d0.demo
  inputfile=demon5i_$d0.txt
  cat >$inputfile <<EOF
Ff
$d, $e
16, 2,
2,
22, -1,
EOF
  cat >$inputfile <<EOF
Ff
$d, $e
1, 9999999999
3,
13,
7,
2,
22, -1,
EOF
  cat >$inputfile <<EOF
Ff
$d, $e
17, 163,
2,
22, -1,
EOF
  echo "LOADCONFIG configs/demon5orig.gier" > $demofile
  echo "HIDE KB1" >>$demofile
  echo "HIDE KB2" >>$demofile
  echo "SELECT 3 48" >>$demofile
  echo "LOADREADER $inputfile" >>$demofile
  echo "LOADPUNCH demon5origout/$d0.flx" >>$demofile
  echo "WAITINPUT" >>$demofile
  ./maketext.sh "run,demon5orig<" >>$demofile
  echo "WAITINPUT" >>$demofile
  echo "TYPE 52" >>$demofile
  echo "WAITINPUT" >>$demofile
  ./maketext.sh "-1," >>$demofile
  echo "WAITINPUT" >>$demofile
  echo "FINISHPUNCH" >>$demofile
  echo "QUIT" >>$demofile
  ./GIER $demofile &
  PID=$!
  echo PID: $PID
  for((i=0;i<30;i++))
  do
    echo $d0 PID: $PID i: $i
    sleep 1
    if [ \! -d /proc/$PID ]
    then
      break
    fi
    flx2a <demon5origout/$d0.flx | fgrep -q "Error in"
    st=$?
    if [ $st -eq 0 ]
    then
      kill $PID
      break
    fi
  done
  if [ -d /proc/$PID ]
  then
    echo $d0 kill $PID
    kill $PID
  fi
  echo output $d0
  flx2a <demon5origout/$d0.flx >demon5origout/$d0.asc
  rm -f $demofile
}

export -f do_demon5


rm -rf demon5origout
mkdir demon5origout

# --ungroup
seq 0 10 400 |parallel --group do_demon5

echo kill $xpid
kill $xpid
