#!/bin/sh -x

pwd 1>&2

CACHEDIR=cache
test -d "$CACHEDIR" || mkdir -p "$CACHEDIR"

#TEXT=`cat`
TEXT="$1"
echo "$TEXT" | xxd 1>&2

HASH=`printf "$TEXT" | md5sum | cut -d' ' -f1`

if test -f $CACHEDIR/$HASH.png; then
	cp -a $CACHEDIR/$HASH.png .
	echo $HASH.png
	exit 0
fi

TEMP=`mktemp tmp-XXXXXX.tex`
TEMPBASE=${TEMP%.tex}
trap "rm -f $TEMP $TEMPBASE.log $TEMPBASE.aux $TEMPBASE.dvi" EXIT

cat > $TEMP << EOF
\documentclass[russian]{article}
\usepackage[utf8]{inputenc}
%\usepackage[T2A]{fontenc}
%\usepackage[english,russian]{babel}
\usepackage{euscript}
\usepackage{type1cm}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{ulem}
\usepackage{mathrsfs}
\begin{document}
\thispagestyle{empty}
$TEXT
\end{document}
EOF

#cat $TEMP 1>&2
cp $TEMP file.tex

latex -interaction nonstopmode ./${TEMP} 1>&2 #> /dev/null 2>&1;
case $? in
	0) dvipng -q -D $res -T tight -pp 1 --noghostscript ${TEMP%.tex}.dvi -o $HASH.png > /dev/null 2>&1 ;;
	*) exit 1 ;;
esac

cp -a $HASH.png $CACHEDIR/

echo $HASH.png
