- if [ ! -f "${ABCDETEMPDIR}/cddbread.1" ] ; then
- if [ $CDDBLASTMETHOD = "y" ]
- then
- # We're the end of the line.
- #
- # No matches. Use the normal cddb template for the user to
- # fill in
- vecho "Unable to find a match with ${CDDBMETHCHOICE}, generating CDDB template."
- echo "No Musicbrainz match." >> "$ABCDETEMPDIR/cddbchoices"
- $CDDBTOOL template $(cat "$ABCDETEMPDIR/discid") > "$ABCDETEMPDIR/cddbread.0"
- # List out disc title/author and contents of template
- echo ---- Unknown Artist / Unknown Album ---- >> "$ABCDETEMPDIR/cddbchoices"
- UNKNOWNDISK=y
- for TRACK in $(f_seq_row 1 $TRACKS)
- do
- echo $TRACK: "$(grep -a ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.0" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices"
- done
- echo >> "$ABCDETEMPDIR/cddbchoices"
- echo cddb-read-0-complete >> "$ABCDETEMPDIR/status"
- echo cddb-choice=0 >> "$ABCDETEMPDIR/status"
- echo 503 > "$ABCDETEMPDIR/cddbquery"
- else
- # Neat, we'll let the next guy take care of this CDDB
- # file junk.
- vecho "Unable to find a match with ${CDDBMETHCHOICE}, moving on to the next option."
- fi
- else
- # We have some matches
- NUM_RESPONSES=$(echo "${ABCDETEMPDIR}"/cddbread.* | wc -w)
- if [ "$NUM_RESPONSES" -eq 1 ] ; then
- # One exact match
- echo -n "Retrieved 1 Musicbrainz match..." >> "$ABCDETEMPDIR/cddbchoices"
- echo "done." >> "$ABCDETEMPDIR/cddbchoices"
- echo cddb-read-1-complete >> "$ABCDETEMPDIR/status"
- echo cddb-choice=1 >> "$ABCDETEMPDIR/status"
- ATITLE=$(grep -a -e '^DTITLE=' "${ABCDETEMPDIR}/cddbread.1" | cut -c8- )
- echo "200 none ${ATITLE}" >> "$ABCDETEMPDIR/cddbquery"
- # List out disc title/author and contents
- echo ---- ${ATITLE} ---- >> "$ABCDETEMPDIR/cddbchoices"
- for TRACK in $(f_seq_row 1 $TRACKS)
- do
- echo $TRACK: "$(grep -a ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.1" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices"
- done
- echo >> "$ABCDETEMPDIR/cddbchoices"
- else
- echo "210 Found exact matches, list follows (until terminating .)" > "$ABCDETEMPDIR/cddbquery"
- echo "Multiple Musicbrainz matches:" >> "$ABCDETEMPDIR/cddbchoices"
- for file in "$ABCDETEMPDIR"/cddbread.*
- do
- X=$(echo $file | sed 's/^.*cddbread\.//g')
- echo cddb-read-$X-complete >> "$ABCDETEMPDIR/status"
- ATITLE=$(grep -a -e '^DTITLE=' "${ABCDETEMPDIR}"/cddbread.$X | cut -c8- )
- echo "none ${ATITLE}" >> "$ABCDETEMPDIR/cddbquery"
- # List out disc title/author and contents
- echo "#$X: ---- ${ATITLE} ----" >> "$ABCDETEMPDIR/cddbchoices"
- for TRACK in $(f_seq_row 1 $TRACKS)
- do
- echo $TRACK: "$(grep -a ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.$X" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices"
- done
- echo >> "$ABCDETEMPDIR/cddbchoices"
- done
- echo "." >> "$ABCDETEMPDIR/cddbquery"
- fi
+ NUM_RESPONSES=$(echo "${SOURCE_WORKDIR}"/cddbread.* | wc -w)
+ if [ "$NUM_RESPONSES" -gt 0 ] ; then
+ # One or more exact matches
+ i=1
+ while [ $i -le "$NUM_RESPONSES" ]; do
+ NUM_CDDB_MATCHES=$(($NUM_CDDB_MATCHES + 1))
+ i=$(($i + 1))
+ echo cddb-read-${NUM_CDDB_MATCHES}-complete >> "${ABCDETEMPDIR}/status"
+ ATITLE=$(grep -a -e '^DTITLE=' "${SOURCE_WORKDIR}/cddbread.${NUM_CDDB_MATCHES}" | cut -c8- | tr -d \\r\\n)
+ echo "none ${CDDBDISCID} ${ATITLE}" >> "${SOURCE_WORKDIR}/cddbquery.${NUM_CDDB_MATCHES}"
+ echo "Musicbrainz" > "${SOURCE_WORKDIR}/datasource.${NUM_CDDB_MATCHES}"
+ cp -f "${SOURCE_WORKDIR}/"*."${NUM_CDDB_MATCHES}" "${ABCDETEMPDIR}"
+ done