#!/bin/bash

TEMPLATE="$1"
TGTPATH="$2"
TGTPREFIX="$3"
TGTNUMBER="$4"
TGTNAME="${TGTPREFIX}_${TGTNUMBER}"

TMP_FILE="tmp.m4"

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/PPMTODICOM/$TEMPLATE.m4"

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

cd "$TGTPATH" || exit 1

COUNT=0
SIZE="0 0"
DYNAMIC="255"
{
	echo "divert(-1)dnl"
	echo "changequote([[,]])"
	echo "define([[XX_REQUIRE]],[[ifdef([[\$1]],,[[define([[\$1]],[[]])]])]])"
	echo "define(XX_PICNUMBER,[[${TGTNUMBER}]])"
	while read a; do
		NOCOMM=${a#\# }
	
		if [ "$a" != "$NOCOMM" ]; then
			VALUE=${NOCOMM#*: }
			case "$NOCOMM" in
				"Dicom/("*)
					MAJOR=${NOCOMM#Dicom/(}
					MINOR=${MAJOR#*,}
					MAJOR=${MAJOR%%,*}
					MINOR=${MINOR%%)*}
					echo "define(XX_DICOM_${MAJOR}_${MINOR},[[$VALUE]])"
					;;
				*)
					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"
			SIZEX=${a% *}
			SIZEY=${a#* }
			SIZETOTAL=$(($SIZEY*$SIZEX*3))
			echo "define(XX_SIZE_X,$SIZEX)dnl";
			echo "define(XX_SIZE_Y,$SIZEY)dnl";
			echo "define(XX_DATASIZE,$SIZETOTAL)dnl";
			COUNT=2
		elif [ "$COUNT" == "2" ]; then
			DYNAMIC="$a"
			break;
		fi
	done
	echo "divert[[]]include($MYPOS)[[]]dnl"
} >"$TMP_FILE"
{ cat "$TMP_FILE" | m4 ; cat ; } | eccet_dicom_synthesizer >"${TGTNAME}.dcm"
