#!/bin/bash

TEMPLATE="$1"
FILENAME="$2"

TMP_FILE=$(tempfile)

if [ "$0" == "${0%/*}" ] ; then
	MYPOS="$(which "$0")"
else
	MYPOS="$0"
fi
MYPOS=${MYPOS%/*}	# kill filename
MYPOS=${MYPOS%/bin}	# kill subdir
MYPOS="${MYPOS}/share/eccet/config/modules/save/PPMTOHTML/$TEMPLATE.m4"

if [ ! -f "$MYPOS" ] ; then
	echo "Can't find template file $MYPOS." >&2
	exit 1
fi

COUNT=0
SIZE="0 0"
DYNAMIC="255"
{
	echo "divert(-1)dnl"
	echo "changequote([[,]])"
	echo "define([[XX_REQUIRE]],[[ifdef([[\$1]],,[[define([[\$1]],[[]])]])]])"
	echo 'define([[XX_QUOTEALL]], [[[[$@]]]])'
	echo "define(XX_IMAGELINK,[[${FILENAME%.html}.png]])"
	while IFS="" read a; do
		NOCOMM=${a#\# }
	
		if [ "$a" != "$NOCOMM" ]; then
			ADD=0
			if [ "$NOCOMM" != "${NOCOMM#+}" ] ; then 
				ADD=1
				NOCOMM="${NOCOMM#+}"
			fi
			VALUE=${NOCOMM#*:[ 	]}
			case "$NOCOMM" in
				"Dicom/("*)
					MAJOR=${NOCOMM#Dicom/(}
					MINOR=${MAJOR#*,}
					MAJOR=${MAJOR%%,*}
					MINOR=${MINOR%%)*}
					VARNAME="XX_DICOM_${MAJOR}_${MINOR}"
					if [ "$ADD" == "0" ] ; then
						echo "define([[${VARNAME}]],[[${VALUE}]])"
					else
						echo "define([[${VARNAME}]],XX_QUOTEALL(${VARNAME})[[$VALUE]])"
					fi
					;;
				"Picture/"*|"View/"*|"Image/"*)
					MAJOR=${NOCOMM%%/*}
					REST=${NOCOMM#*/}
					MINOR=${REST%%:*}
					VARNAME="XX_${MAJOR}_${MINOR}"
					if [ "$ADD" == "0" ] ; then
						echo "define([[${VARNAME}]],[[${VALUE}]])"
					else
						echo "define([[${VARNAME}]],XX_QUOTEALL(${VARNAME})[[$VALUE]])"
					fi
					;;
				*)
					echo "define([[XX_OTHER_COMMENTS]],XX_OTHER_COMMENTS[[$NOCOMM<BR>]])"
					;;
			esac
			continue;
		fi
		if [ "$COUNT" == "0" ]; then
			COUNT=1
			if [ "$a" != "P6" ] ; then
				exit 1
			fi
		elif [ "$COUNT" == "1" ]; then
			SIZE="$a"
			COUNT=2
		elif [ "$COUNT" == "2" ]; then
			DYNAMIC="$a"
			break;
		fi
	done
	echo "divert[[]]include($MYPOS)[[]]dnl"
} >"$TMP_FILE"
cat "$TMP_FILE" | sed -e "s/</\&lt;/g" -e "s/>/\&gt;/g" | \
	m4 >"${FILENAME}.html"

{
	echo "P6"
	echo "$SIZE"
	echo "$DYNAMIC"
	cat
} | pnmtopng >"${FILENAME%.html}.png"
