echo " Specify CDROM device to grab"
echo "-D Debugging mode (equivalent to sh -x abcde)"
echo "-e Erase encoded track information from status file"
+#echo "-E Set the encoding information for the tags"
echo "-h This help information"
#echo "-i Tag files while encoding, when possible (local only) -NWY-"
echo "-j <#> Number of encoder processes to run at once (localhost)"
TRACKNAME=$(echo "$DTITLEARTIST" | cut -f1 -d~)
;;
esac
- elif [ "$ONETRACK" = "y" ]; then
+ elif [ "$VARIOUSARTISTS" = "y" ] && [ "$ONETRACK" = "y" ]; then
TRACKARTIST="Various"
else
TRACKARTIST="$DARTIST"
"gangsta") id=59 ;;
"top 40") id=60 ;;
"christian rap") id=61 ;;
- "pop/funk") id=62 ;;
+ "pop/funk"|"pop / funk") id=62 ;;
"jungle") id=63 ;;
"native american") id=64 ;;
"cabaret") id=65 ;;
"anime") id=145 ;;
"jpop") id=146 ;;
"synthpop") id=147 ;;
+ "rock/pop"|"rock / pop") id=148 ;;
*) return 1 ;;
esac
echo ${id}
# id3v2 v0.1.9 claims to have solved the -c bug, so we merge both id3 and id3v2
GENREID=$(do_getgenreid "${CDGENRE}")
- # FIXME # track numbers in mp3 come with 1/10, so we cannot happily substitute them with $TRACKNUM
- run_command tagtrack-$1 $TAGGER $TAGGEROPTS -c "$COMMENTOUTPUT" \
- -A "$DALBUM" -a "$TRACKARTIST" -t "$TRACKNAME" -y "$CDYEAR" \
- -g "$GENREID" -T "${TRACKNUM:-$1/$TRACKS}" \
- "$ABCDETEMPDIR/track$1.$OUTPUT"
+ case "$ID3SYNTAX" in
+ id3);;
+ eyed3)
+ # FIXME # track numbers in mp3 come with 1/10, so we cannot happily substitute them with $TRACKNUM
+ run_command tagtrack-$1 $TAGGER $TAGGEROPTS --commen=::"$COMMENTOUTPUT" \
+ -A "$DALBUM" -a "$TRACKARTIST" -t "$TRACKNAME" -Y "$CDYEAR" \
+ -G "$GENREID" -n "${TRACKNUM:-$1}" "${TRACKNUM:+-N $TRACKS}" \
+ "${ENCODING:+--set-encoding=$ENCODING}"
+ "$ABCDETEMPDIR/track$1.$OUTPUT"
+ ;;
+ *)
+ # FIXME # track numbers in mp3 come with 1/10, so we cannot happily substitute them with $TRACKNUM
+ run_command tagtrack-$1 $TAGGER $TAGGEROPTS -c "$COMMENTOUTPUT" \
+ -A "$DALBUM" -a "$TRACKARTIST" -t "$TRACKNAME" -y "$CDYEAR" \
+ -g "$GENREID" -T "${TRACKNUM:-$1/$TRACKS}" \
+ "$ABCDETEMPDIR/track$1.$OUTPUT"
+ ;;
+ esac
;;
vorbis|ogg)
case "$OGGENCODERSYNTAX" in
TEMPARG="PIPE_$MPPENCODER"
;;
esac
- IN=${!TEMPARG}
+ IN="$( eval echo "\$$TEMPARG" )"
else
IN="$ABCDETEMPDIR/track$1.wav"
case "$OUTPUT" in
if checkstatus cuefile > /dev/null 2>&1 ; then :; else
CUEFILE=cue-$(echo "$TRACKINFO" | cut -f1 -d' ').txt
vecho "Creating cue file..."
- $MKCUE $MKCUEOPTS > "$ABCDETEMPDIR/$CUEFILE"
- echo cuefile=$CUEFILE >> "$ABCDETEMPDIR/status"
+ if $CUEREADER $CUEREADEROPTS > "$ABCDETEMPDIR/$CUEFILE"; then
+ echo cuefile=$CUEFILE >> "$ABCDETEMPDIR/status"
+ else
+ echo "abcde: reading the CUE sheet with mkcue is still considered experimental"
+ echo "abcde: and there was a problem with the CD reading. abcde will continue,"
+ echo "abcde: but consider reporting the problem to the abcde author"
+ fi
fi
fi
# If we got the CDPARANOIA status and it is not recorded, save it now
echo "variousartiststyle=$VARIOUSARTISTSTYLE" >> "$ABCDETEMPDIR/status"
if [ "$EDITCDDB" = "y" ] && [ "$UNINTENTIONALLY_ANGER_THE_FREEDB_PEOPLE" = "y" ]; then
- if [ $CDDBDATAMD5SUM != "" ] && [ $CDDBDATAMD5SUM != $($MD5SUM "$CDDBDATA" | cut -d " " -f 1) ]; then
+ if [ "$CDDBDATAMD5SUM" != "" ] && [ "$CDDBDATAMD5SUM" != "$($MD5SUM "$CDDBDATA" | cut -d " " -f 1)" ]; then
# This works but does not have the necessary error checking
# yet. If you are familiar with the CDDB spec
# (see http://www.freedb.org/src/latest/DBFORMAT)
CDDBTRACKNUM=$(expr $UTRACKNUM - 1)
if [ "$USEPIPES" = "y" ]; then
TEMPARG="PIPE_$CDROMREADERSYNTAX"
- FILEARG="${!TEMPARG}"
+ FILEARG="$( eval echo "\$$TEMPARG" )"
REDIR=""
PIPE_MESSAGE="and encoding "
else
SPEEXENCODERSYNTAX=default
MPPENCODERSYNTAX=default
NORMALIZERSYNTAX=default
+CUEREADERSYNTAX=default
OUTPUTFORMAT='${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
# Use the following VAOUTPUTFORMAT to revert to 2.0.x VA format:
ID3=id3
ID3V2=id3v2
+EYED3=eyeD3
CDPARANOIA=cdparanoia
CDDA2WAV=cdda2wav
DAGRAB=dagrab
# Let's use these checkings to determine the OS flavour, which will be used later
if [ X$(uname) = "XFreeBSD" ] ; then
HTTPGET=fetch
+ MD5SUM=md5
NEEDCDROMID=y
OSFLAVOUR=FBSD
elif [ X$(uname) = "XDarwin" ] ; then
elif [ X$(uname) = "XOpenBSD" ] ; then
HTTPGET=wget
MD5SUM=md5
+elif [ X$(uname) = "XNetBSD" ] ; then
+ HTTPGET=ftp
+ MD5SUM=md5
else
HTTPGET=wget
fi
wget) HTTPGETOPTS="-q -O -";;
curl) HTTPGETOPTS="-f -s";;
fetch)HTTPGETOPTS="-q -o -";;
+ ftp) HTTPGETOPTS="-q -o -";;
*) echo "abcde warning: HTTPGET in non-standard and HTTPGETOPTS are not defined." >&2 ;;
esac
fi
case "$opt" in
1) ONETRACK=y ;;
a) ACTIONS="$OPTARG" ;;
- A) EXPACTIONS="$OPTARG";;
+ A) EXPACTIONS="$OPTARG" ;;
b) BATCH=y ;;
c) if [ -e "$OPTARG" ] ; then . "$OPTARG" ; else echo "abcde error: config file \"$OPTARG\" cannot be found." >&2 ; exit 1 ; fi ;;
C) DISCID="${OPTARG#abcde.}" ;;
e) ERASEENCODEDSTATUS=y ;;
h) usage; exit ;;
e) ERASEENCODEDSTATUS=y ;;
+ E) ENCODING="$OPTARG" ;;
# f) FORCECDDBUSELOCAL=y ;;
i) INLINETAG=y ;;
j) MAXPROCS="$OPTARG" ;;
TAGGEROPTS="$ID3V2OPTS"
fi
+# Options for mkcue
+case "$CUEREADERSYNTAX" in
+ default|mkcue)
+ CUEREADEROPTS="${CDROM}"
+ CUEREADER="$MKCUE"
+ ;;
+esac
+
# Check if both OGGEOUTPUTCONTAINER and FLACOUTPUTCONTAINER are the same, and differentiante them
if [ X"$OGGOUTPUTCONTAINER" = "Xogg" ] && [ X"$FLACOUTPUTCONTAINER" = "Xogg" ]; then
echo "abcde error: FLAC on an Ogg container is not yet supported" >&2
if [ ! "$CDDBAVAIL" = "n" ] && [ "$DOCDDB" = "y" ]; then
NEEDHTTPGET=y
fi
-if [ "$CUEFILE" = "y" ]; then
- NEEDMKCUE=y
+if [ "$MAKECUEFILE" = "y" ]; then
+ NEEDCUEREADER=y
fi
if [ X"$CDSPEEDVALUE" != "X" ]; then
mpc)
PIPEENCODERSVARCHECK="PIPE_$MPPENCODER" ;;
esac
- if [ ! -n "${!PIPERIPPERSVARCHECK}" ] ; then
+ if [ ! -n "$( eval echo "\$$PIPERIPPERSVARCHECK" )" ] ; then
echo "abcde error: no support for pipes with given ripper" >&2
echo "read the USEPIPES file from the source tarball to help" >&2
echo "on a Debian system, read /usr/share/doc/abcde/USEPIPES.gz" >&2
exit 1;
fi
- if [ ! -n "${!PIPEENCODERSVARCHECK}" ] ; then
+ if [ ! -n "$( eval echo "\$$PIPEENCODERSVARCHECK" )" ] ; then
echo "abcde error: no support for pipes with given encoder" >&2
echo "read the USEPIPES file from the source tarball to help" >&2
echo "on a Debian system, read /usr/share/doc/abcde/USEPIPES.gz" >&2
${NEEDCOMMENTER+$VORBISCOMMENT} ${NEEDMETAFLAC+$METAFLAC} \
${NEEDNORMALIZER+$NORMALIZER} ${NEEDEJECT+$EJECT} \
${NEEDDISKTOOL+disktool} ${NEEDCDSPEED+$CDSPEED} \
- ${NEEDVORBISGAIN+$VORBISGAIN} ${NEEDMKCUE+$MKCUE}
+ ${NEEDVORBISGAIN+$VORBISGAIN} ${NEEDCUEREADER+$CUEREADER}
do
# Cut off the command-line options we just added in
X=$(echo $X | cut -d' ' -f2)