@ECHO OFF

REM   This script converts XML data exported from TRACE32
REM   to a HTML and a PDF file.
REM  
REM   Requirements
REM       t32transform.xsl must be in the same directory as your XML file
REM       Programms "xalan" or "xsltproc" must be in your working PATH
REM       Programm "wkhtmltopdf" must be in your working PATH to create a PDF

REM SET PATH=%PATH%;C:\cygwin\bin


SETLOCAL ENABLEDELAYEDEXPANSION 
SET XMLFILE=
SET MODE=mix
SET COLOR=normal
FOR %%A IN (%*) DO (
	SET PARAM=%%A
	IF "!PARAM:~0,1!"=="-" (
		SET FLAG=!PARAM:~1!
		IF !FLAG!==h    GOTO HELP
		IF !FLAG!==help GOTO HELP
		IF !FLAG!==hll  SET MODE=hll
		IF !FLAG!==asm  SET MODE=asm
		IF !FLAG!==gray SET COLOR=gray
		IF !FLAG!==grey SET COLOR=gray
	) ELSE (
		IF EXIST !PARAM! SET XMLFILE=!PARAM!
	)
)
IF [%XMLFILE%]==[] GOTO HELP

SET HTMFILE=%~dpn1.htm
SET PDFFILE=%~dpn1.pdf

FOR %%X IN (xalan.exe)       DO (SET XALANPATH=%%~$PATH:X)
FOR %%X IN (xsltproc.exe)    DO (SET XSLTPROCPATH=%%~$PATH:X)
FOR %%X IN (wkhtmltopdf.exe) DO (SET WKHTMLTOPDFPATH=%%~$PATH:X)
IF "%XALANPATH%-%XSLTPROCPATH%"=="-" (
	ECHO Can't find neither "xalan" nor "xsltproc" in your PATH !
	ECHO  You require "xalan-c" or "xsltproc" in your PATH 
	ECHO  Please check your PATH environment variable
	ECHO  Download "xalan-c"  from http://xalan.apache.org/xalan-c 
	ECHO  Download "xsltproc" from http://www.zlatkovic.com/libxml.en.html 
	ECHO                  or check http://xmlsoft.org/xslt
	GOTO:EOF
)
IF NOT DEFINED WKHTMLTOPDFPATH (
	ECHO Can't find "wkhtmltopdf" in your PATH !
	ECHO  Please check your PATH environment variable
	ECHO  Download "wkhtmltopdf" from http://code.google.com/p/wkhtmltopdf
	GOTO:EOF
)

IF DEFINED XALANPATH (
	ECHO xalan -a -o "%HTMFILE%" %XMLFILE%
	xalan -a -o "%HTMFILE%" %XMLFILE%
) ELSE (
	ECHO xsltproc %XMLFILE% ^> "%HTMFILE%"
	xsltproc %XMLFILE% > "%HTMFILE%"
)

SET PDFMARGINS= --margin-top 5 --margin-right 1 --margin-bottom 5 --margin-left 5
SET PDFOPTIONS= %PDFMARGINS% --print-media-type --background --enable-javascript
REM 	--disable-external-links --enable-internal-links

SET GETPARAM=?mode^=%MODE%^&color=%COLOR%
IF "%COLOR%"=="gray" SET PDFOPTIONS= %PDFOPTIONS% --grayscale
SET HTMLURL=file:///!HTMFILE: =%%20!

ECHO wkhtmltopdf %PDFOPTIONS% "%HTMLURL%%GETPARAM%" "%PDFFILE%"
wkhtmltopdf %PDFOPTIONS% "%HTMLURL%%GETPARAM%" "%PDFFILE%"


GOTO:EOF

:HELP
	echo Please specify a valid file name!
	echo %~n0 [-hll] [-gray] ^<xml-file^>
	echo  Options:
	echo  -hll  : Don't show assembler lines in generated PDF
	echo  -gray : Create PDF in only in gray shades 
	GOTO:EOF
