#!/bin/bash #
# For every CD in the local cddb-spool generate a file with
# Tex-macros which includes scanned cover-images.
# This files are generated in ~/cdinhalt, for every
# cddb-genre there is a directory with the corresponding name.
JPGDIR=$HOME/public_html/cd-cover;
cd $HOME/cdinhalt
rm -rf $HOME/cdinhalt/*;
for dir in /opt/kde2/share/apps/kscd/cddb/*; do
[ ! -d $(basename $dir) ] && mkdir $(basename $dir);
(
cd $(basename $dir);
pwd;
for file in $dir/*; do
cddbid=$(basename $file);
if [ -f $file ]
then
# generate the TeX-file and get the filename from the
# disc-cover output.
name=$(disc-cover -f $file -t mytex 2>&1 |\
grep "Output goes to" | sed -e 's/Output goes to //' |\
sed -e 's/"//g');
[ ! -f $name ] && continue;
echo $cddbid : $name;
jpegs="no";
# Now we are looking, if there are jpg-Scans for this album.
# These Scans are located in $JPGDIR, for every Album there
# must be directory with the cddb-id as name.
# In $JPGDIR/thumbs there must be also a directory with this
# name, which contains a thumb for every jpg-file.
# The files front.jpg und back.jpg are included first.
# First we get the some macros of the Tex-File
# and put them in a temporary file
egrep 'currentartist|currenttitle' $name > $name.tmp;
echo " " >> $name.tmp;
# front.jpg und back.jpg are included
if [ -f $JPGDIR/$cddbid/front.jpg ]
then
echo \
"\\htmladdnormallink{\htmladdimg{../cd-cover/thumbs/$cddbid/front.jpg}}{../cd-cover/$cddbid/front.jpg}"\
>> $name.tmp;
jpegs="yes";
fi
if [ -f $JPGDIR/$cddbid/back.jpg ]
then
echo \
"\\htmladdnormallink{\htmladdimg{../cd-cover/thumbs/$cddbid/back.jpg}}{../cd-cover/$cddbid/back.jpg}"\
>> $name.tmp;
jpegs="yes";
fi
# Now all the other images, if there are any
for jpgfile in $JPGDIR/$cddbid/*.jpg
do
[ ! -f $jpgfile ] && continue;
basejpgname=$(basename $jpgfile .jpg);
if [ $basejpgname = "front" ] || [ $basejpgname = "back" ]
then
continue;
else
echo \
"\\htmladdnormallink{\htmladdimg{../cd-cover/thumbs/$cddbid/$basejpgname.jpg}}{../cd-cover/$cddbid/$basejpgname.jpg}"\
>> $name.tmp;
jpegs="yes";
fi
done
# The rest of the tex-file is put in the temp-file and the
# temp file is renamed.
if [ "$jpegs" = "yes" ]
then
echo " " >> $name.tmp;
egrep -v 'currenttitle|currentartist' $name >> $name.tmp;
mv $name.tmp $name;
fi
[ -f $name.tmp ] && rm -f $name.tmp;
fi
done
);
done
# Generate a tex-file (.tex) for every subdirectory (if it
# contains any tex-file). The tex-file consist of a
# \cddbsection{genre}, aferwards all tex-files of this directory are
# \inputted.
# At the same time inhalt.tex is built. It consists of a preamble in
# the form of \input{vorspann.tex}, inputs all the genry-files and
# finally a file called nachspann.tex.
# All that is left is to write the two files vorspann.tex and
# nachspann.tex to generate a tex-file.
# In this files the user must define \cddbsection and all the
# macros which are generated by disc-cover.
# For \htmladdnormallink you have to do a \usepackage{html}
echo "\\input{vorspann.tex}" > inhalt.tex;
for dir in * ; do
if (test ! -d $dir )
then
continue;
fi
inhalt="nein";
for file in $dir/*; do
if [ -f $file ]; then
if [ $inhalt = "nein" ]
then
echo "\\cddbsection{$dir}" > $dir.tex;
echo "\\input{$dir.tex}" >> inhalt.tex;
inhalt="ja";
fi
echo "\\input{/home/thomas/cdinhalt/$file}" >> $dir.tex;
fi
done;
if [ "$inhalt" = "nein" ]
then
rmdir $dir
fi
done
echo "\\input{nachspann.tex}" >> inhalt.tex;
#