2010-10-05 23:23:01 +00:00
|
|
|
#!/bin/bash
|
2010-10-08 21:36:08 +00:00
|
|
|
#
|
|
|
|
# encode.bash - Drives a set of encoders and tagging utilities to convert a
|
|
|
|
# single WAV input file into flac, Ogg Vorbis, AAC and MP3 files with complete
|
|
|
|
# and consistent metadata.
|
|
|
|
#
|
|
|
|
# Copyright (c) 2010, Thomas Gideon
|
|
|
|
# All rights reserved.
|
|
|
|
#
|
|
|
|
# Redistribution and use in source and binary forms, with or without
|
|
|
|
# modification, are permitted provided that the following conditions are met:
|
|
|
|
# * Redistributions of source code must retain the above copyright
|
|
|
|
# notice, this list of conditions and the following disclaimer.
|
|
|
|
# * Redistributions in binary form must reproduce the above copyright
|
|
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
|
|
# documentation and/or other materials provided with the distribution.
|
|
|
|
# * Neither the name of Thomas Gideon nor the
|
|
|
|
# names of additional contributors may be used to endorse or promote products
|
|
|
|
# derived from this software without specific prior written permission.
|
|
|
|
#
|
|
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
|
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
|
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
|
|
# DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
|
|
|
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
|
|
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
|
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
|
|
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
|
|
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
2010-10-16 15:34:10 +00:00
|
|
|
|
|
|
|
src=$1/contents.xml
|
|
|
|
shift
|
|
|
|
target=$1
|
|
|
|
# copy .gz file based on arg
|
|
|
|
cp "$src" ./contents.xml.gz
|
2010-11-09 16:44:44 +00:00
|
|
|
echo "Copied $src to ./contents.xml.gz"
|
2010-10-16 15:34:10 +00:00
|
|
|
|
|
|
|
# gunzip original file
|
|
|
|
gunzip contents.xml.gz
|
2010-11-09 16:44:44 +00:00
|
|
|
echo "Gunzipped contents.xml.gz"
|
2010-10-16 15:49:56 +00:00
|
|
|
|
2010-10-16 15:34:10 +00:00
|
|
|
# makes sure the ns is only on one line, also
|
|
|
|
# makes the interim file more readable for debugging
|
|
|
|
tidy -config tidyrc -xml -m contents.xml
|
2010-11-09 16:44:44 +00:00
|
|
|
echo "Tidied contents.xml"
|
2010-10-16 15:49:56 +00:00
|
|
|
|
2010-10-16 15:34:10 +00:00
|
|
|
# xalan doesn't handle ns well, stripp them
|
|
|
|
sed -e "s/ xmlns=\".*\"//g" -i contents.xml
|
2010-11-09 16:47:36 +00:00
|
|
|
# xalan also doesn't handle imports, which shouldn't be necessary anyway
|
2010-11-09 16:48:34 +00:00
|
|
|
sed -e "s/ standalone=\"no\"//g" -i contents.xml
|
2010-10-16 15:49:56 +00:00
|
|
|
|
|
|
|
# use grep to figure out which xsl to use
|
|
|
|
grep "<lit>[0-9]\{2\}:[0-9]\{2\}</lit>" contents.xml > /dev/null
|
|
|
|
if [ "$?" == "0" ]
|
|
|
|
then
|
|
|
|
xsl=with_offset.xsl
|
|
|
|
else
|
2010-11-09 16:49:38 +00:00
|
|
|
xsl=without_offset.xsl
|
2010-10-16 15:49:56 +00:00
|
|
|
fi
|
|
|
|
xalan -xsl $xsl -in contents.xml -text -out contents.txt
|
2010-11-09 16:51:08 +00:00
|
|
|
echo "Transformed outline with $xsl."
|
2010-10-16 15:49:56 +00:00
|
|
|
|
2010-10-16 15:34:10 +00:00
|
|
|
# expand the indent counts to proper leading white space
|
2010-10-08 21:34:30 +00:00
|
|
|
sed -e "s/^2/ /" -i contents.txt
|
|
|
|
sed -e "s/^3/ /" -i contents.txt
|
|
|
|
sed -e "s/^4/ /" -i contents.txt
|
|
|
|
sed -e "s/^5/ /" -i contents.txt
|
|
|
|
sed -e "s/^6/ /" -i contents.txt
|
2010-11-09 16:51:08 +00:00
|
|
|
echo "Fixed indentation."
|
2010-10-16 15:34:10 +00:00
|
|
|
|
|
|
|
# snug the result where requested
|
|
|
|
mv contents.txt "$target"
|
2010-11-09 16:51:08 +00:00
|
|
|
echo "Moved resulting file to $target."
|
2010-10-16 15:34:10 +00:00
|
|
|
# clean up the temporary files
|
2010-11-09 16:47:36 +00:00
|
|
|
rm contents.xml
|