view makeWebItems.sh @ 48:6f4667d1372d

Try to make web item updates atomic-ish. The Jenkins workspace is exported as the web site. So when updating files that take time, such as making MP3, create to a temp file and rename into place.
author Jim Hague <jim.hague@laicatc.com>
date Sun, 04 Mar 2012 16:09:06 +0000
parents d92717f8130c
children 3464d5154f49
line wrap: on
line source

#!/bin/bash
#
# Make items required for the website but not for the book.
# They go into web/<book>.
#

if [ $# != 1 ]; then
    echo "Usage: makeWebItems.sh <book dir name>"
    exit 1
fi

dir=`pwd`

booke=$dir/$1
builddir=$dir/web/$1
graphicsdir=$dir/graphics/$1

mkdir -p $builddir

# Now, for each tune, make the tune JPG and sound. Do this to temp
# files and rename into place to make updates as atomic as possible.
find $booke -name "*.abc" | sort |
    while read filename
    do
        name=`basename $filename .abc`
        convert $graphicsdir/${name}.eps $builddir/${name}.jpg.tmp

        abc2midi $filename -o $builddir/${name}.mid.tmp
        timidity -Ow -o $builddir/${name}.wav.tmp $builddir/${name}.mid.tmp
        lame --quiet $builddir/${name}.wav.tmp $builddir/${name}.mp3.tmp

        mv $builddir/${name}.jpg.tmp $builddir/${name}.jpg
        mv $builddir/${name}.mid.tmp $builddir/${name}.mid
        mv $builddir/${name}.mp3.tmp $builddir/${name}.mp3
        rm $builddir/${name}.wav.tmp
    done