#!/bin/bash

#the collation sequence was not good though - `ls -v *.denemo.gz`  gives them in version order

find . -name "*.denemo" -exec gzip -f '{}' \;
rm DenemoPDFoutput/*
mkdir DenemoPDFoutput
rm DenemoBook.pdf
echo "Number of params " $# " ok??"

if [[ "$#" -eq 7 ]]; then
echo dollar one $1
title="$1"
composer=$2
opus=$3
arranger=$4
tagline=$5
scalex=$6
scaley=$7
ScmFile=`pwd`/DenemoPDFoutput/script.scm
(
cat <<ADDTEXT

(if (d-PathFromFilename (d-Open "query=filename"))
    (let* ((filename (string-append (d-PathFromFilename (d-Open "query=filename")) "/DenemoPDFoutput/DenemoBookTitle.ly"))
            (tr (d-DirectiveGet-score-prefix "GlobalTranspose"))
            (incip (d-DirectiveGet-scoreheader-postfix "ScoreIncipit"))
            (tit (d-DirectiveGet-scoreheader-display "BookTitle"))
            (port (open-file filename "a")))
        (if (and filename tr incip tit port)
            (format port "  
                ~a\n~a\n\\\\markup  \\\\scale #'($scalex . $scaley ) \\\\line { \\\\hspace #15
                \\\\column {
                \\\\line {~a}
                \\\\incipit
                }
                }" tr incip tit))
            (disp "Couldn't open " filename "\n\n")))

ADDTEXT
) > "${ScmFile}"
echo Scheme script stored in ${ScmFile}

LyFile=`pwd`/DenemoPDFoutput/DenemoBookTitle.ly
(
cat <<ADDTEXT
    \header {
                tagline = \markup { \with-url #"http://www.denemo.org/~rshann/DenemoScores/" $tagline}
            }
                \markup  \line {
                    { \postscript #"
                    gsave
                    initmatrix
                    1 setlinewidth 40 40 moveto 517 0 rlineto 0 760 rlineto -517 0 rlineto 0 -760 rlineto  stroke
                    0.5 setlinewidth 45 45 moveto 507 0 rlineto 0 750 rlineto -507 0 rlineto 0 -750 rlineto  stroke
                    grestore" }
                 \line { 
                       \vspace #7
                        \hspace #-1.45 %for some reason the column is centered without this
                        \column {
                          \fill-line { \scale #'(4 . 4) \center-column{\line{\large {$title}
}\line \tiny {$composer
}\line \teeny \italic {$opus}
} }
                          \vspace #1
                          \fill-line { \postscript #"-20 0 moveto 40 0 rlineto stroke" }
                          \vspace #2
                          \fill-line { $arranger}
                          \vspace #2
                            }
                          }
                        }
ADDTEXT
) > "${LyFile}"

echo "Title Page stored in " $LyFile
echo "Working directory is " `pwd`

(IFS=$'\n'; for f in `ls -v *.denemo.gz` ; do denemo -n -i "${ScmFile}" $f ; done )
lilypond -o ./DenemoPDFoutput/AAAA ./DenemoPDFoutput/DenemoBookTitle.ly

fi

(IFS=$'\n'; for f in `ls -v *.denemo.gz` ; do denemo -n -a "(d-SelectDefaultLayout)(d-ExportPDF \""`pwd`/DenemoPDFoutput/"$f-Ascore.pdf\")(d-MoveToMovementBeginning)(d-LilyPondForPart)(d-ExportPDF \""`pwd`/DenemoPDFoutput/"$f-Bpart.pdf\")" $f ; done )
(IFS=$'\n'; gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=DenemoBook.pdf `ls -v DenemoPDFoutput/*.pdf` )
rm -rf DenemoPDFoutput
