#!/bin/sh
#
# Author: Petter Reinholdtsen <pere@td.org.uit.no>
# Date:   1999-02-02
#
# Convert CD music to mp3, fetching title, artist and track names from CDDB

TMPDIR=/var/tmp
CDDEV=/dev/cdrom
CDINFO=$TMPDIR/cdinfo-$$

# Fetch CD info
gcdplay -i -q > $CDINFO

PWD=`pwd`

TITLE=`grep 'CD TITLE:' $CDINFO|cut -d: -f2-`
TTITLE=`echo $TITLE|tr ' ()' '_'|sed 's/_\/_/\//'`

if test -z "$TITLE"; then
	echo "Unable to find info on CD from cddb.  Not ripping"
	exit 1
fi

echo "Converting CD: $TITLE"

mkdirhier $TTITLE
cd $TTITLE

pid='0'
for track in `grep '^[0-9]*:' $CDINFO|tr -s ' ()\/' '_'|sed 's/:_/:/'`
do
    t=`echo $track|cut -d: -f1`
    WAVFILE=$TMPDIR/cdinfo-$$-track$t.wav
    OUT1=$TMPDIR/cdinfo-$$-track$t.out
    OUT2=$TMPDIR/cdinfo-$$-track$t-enc.out

    echo "Reading track $t ($track)"
    time nice cdda2wav -D $CDDEV -t $t $WAVFILE > $OUT1 2>&1
    echo "waiting for encoding (pid=$pid) to end"
    wait $pid # > /dev/null 2>&1
    echo "Starting to encode track $t"
    time nice l3enc $WAVFILE $track.mp3 > $OUT2 2>&1 &
    pid=$!

    # Give l3enc time to read file before removing it
    (sleep 10; nice rm -f $WAVFILE $OUT1 $OUT2) &
done
rm -f $CDINFO

cd $PWD
