#!/bin/sh

if [ x"$_INSIDE_XVFB" = x ] ; then
    export _INSIDE_XVFB=1
    exec xvfb-run --auto-servernum --server-args="-screen 0 1280x1024x24" "$0" "$@"
fi

infile="$1"
outfile="$2"
if [ x"$infile" = x ] || [ x"$outfile" = x ] ; then
    echo "Usage: $0 <file.txt> <file.png>" >&2
    exit 1
fi

set -e

case "$infile" in
*00base-mpstat.txt)
    draw1="translate 458,111 ellipse 0,0 40,20 0,360"
    draw2="translate 458,215 ellipse 0,0 40,20 0,360"
    ;;
*0[34]*-mpstat.txt)
    draw1="translate 480,131 roundrectangle -20,-120 20,120 20,20"
    draw2="$draw1"
    ;;
*-mpstat.txt)
    draw1="translate 470,131 roundrectangle -20,-120 20,120 20,20"
    draw2="$draw1"
    ;;

*-prstat.txt)
    draw1="translate 385,33 ellipse 0,0 40,20 0,360"
    draw2="translate 302,293 ellipse 0,0 40,20 0,360"
    ;;

*00base-prstatLm.txt)
    draw1="translate 130,33 ellipse 0,0 40,20 0,360"
    draw2="translate 630,33 roundrectangle -90,-15 90,15 30,30"
    ;;
*-prstatLm.txt)
    draw1="translate 130,91 roundrectangle -50,-70 50,70 30,30"
    draw2="$draw1"
    #draw2="translate 302,293 ellipse 0,0 40,20 0,360"
    ;;
*/vos-status.txt)
    draw1="translate 75,92 roundrectangle -10,-20 10,20 20,20"
    draw2="$draw1"
    ;;
*)
    fold=1
    ;;
esac

cols=`wc -L < $infile`
cols=`expr $cols + 2`

if [ "$cols" -lt 70 ] ; then
    cols=70
fi

if [ x"$fold" = x1 ] ; then
    if [ "$cols" -gt 70 ] ; then
        cols=70
    fi
    rows=`fold -w $cols $infile | wc -l`
else
    rows=`wc -l < $infile`
fi

rows=`expr $rows + 1`

xterm_dims="$cols"x$rows


sleep 5 &
sleep_pid="$!"

#xterm -geometry $xterm_dims -xrm 'XTerm*initialFont: 6' -e sh -c \
#    "cat $infile && kill $sleep_pid && sleep 5" &

xterm -rv -geometry $xterm_dims -e sh -c \
    "cat $infile && kill $sleep_pid && sleep 5" &
xterm_pid="$!"

# Wait to make sure our xterm is running
wait "$sleep_pid" || [ "$?" != 127 ]

wid=`xdotool search --pid "$xterm_pid"`

if [ x"$draw1" = x ] ; then
    import -window "$wid" "$outfile".png
else
    import -window "$wid" png:- | \
    convert png:- -stroke Firebrick -strokewidth 4 -fill none \
            -draw "$draw1" \
            -draw "$draw2" \
            "$outfile".png
fi

convert "$outfile".png -density 96 -set units PixelsPerInch "$outfile"
rm -f "$outfile".png

kill "$xterm_pid"

wait
