view makeWebGraphics.sh @ 1026:e4d31e094d24

Changes to get Beginners booke building. The web pages include prev and next links, so to get those right we have to make the tune filenames distinct from the main booke names. So fall back to taking the easy way, and just prefix all tune names with @ or _.
author Jim Hague <jim.hague@acm.org>
date Tue, 18 Feb 2020 15:13:38 +0000
parents 0f4ba68d6059
children 70e1ff83fe34
line wrap: on
line source

#!/bin/bash
#
# Make graphics required for the website but not for the book.
# They go into web/tunes/<tunename>, or web/tunes-<instrument>/<tunename>.
#

if [[ $# -ne 1 ]]; then
    echo "Usage: makeWebGraphics.sh <book dir name>"
    exit 1
fi

dir=`pwd`

booke=$dir/$1
basewebdir=$dir/web
basetunedir=$basewebdir/tunes
graphicsdir=$dir/graphics/$1

instrumentSuffix="${1##*-}"
if [ "$1" != "$instrumentSuffix" ]; then
    basetunedir="${basetunedir}-${instrumentSuffix}"
fi

# Now, for each tune, make the main tune and tune first line bitmaps.
# Do this to temp files and rename into place to make updates as
# atomic as possible.
find $booke -maxdepth 1 -name "*.abc" | sort |
    while read filename
    do
        name=`basename $filename .abc`
        tunedir=$basetunedir/$name

        # Already generated?
        if [ -f $tunedir/${name}.pdf ]; then
            continue
        fi

        mkdir -p $tunedir

        tmpname=${name}.tmp
        convert -colors 256 -quality 90 -density 200 $graphicsdir/${name}.pdf $tunedir/${tmpname}.png
        convert -colors 256 -quality 90 -density 200 $graphicsdir/firstline-${name}.pdf $tunedir/firstline-${tmpname}.png

        mv $tunedir/${tmpname}.png $tunedir/${name}.png
        mv $tunedir/firstline-${tmpname}.png $tunedir/firstline-${name}.png

        # Make the web downloadable PDF with the tune title.
        abcm2ps -E -F singletuneweb -O $tunedir/$name.eps $filename
        # And make the corresponding PDF.
        epstopdf --outfile=$tunedir/$name.pdf $tunedir/${name}001.eps
        rm $tunedir/${name}001.eps
    done