echo "-S <#> Set the CD speed"
echo "-t <#> Start the track numbering at a given number"
echo "-T <#> Same as -t but modifies tag numbering"
+echo "-u Use UNICODE tags and comments"
echo "-v Show version number and exit"
echo "-V Be a bit more verbose about what is happening behind the scenes"
echo "-x Eject CD after all tracks are read"
ALBUMFILE="$(mungefilename "$DALBUM")"
do_gettracknum
if [ "$VARIOUSARTISTS" = "y" ]; then
- OUTPUTFILE=$(eval echo $VAOUTPUTFORMAT)
+ OUTPUTFILE="$(eval echo $VAOUTPUTFORMAT)"
else
- OUTPUTFILE=$(eval echo $OUTPUTFORMAT)
+ OUTPUTFILE="$(eval echo $OUTPUTFORMAT)"
fi
OUTPUTFILES="$OUTPUTDIR/$OUTPUTFILE.$OUTPUT $OUTPUTFILES"
done
case "$OUTPUT" in
flac)
- run_command replaygain-flac $METAFLAC --add-replay-gain $OUTPUTFILES
+ run_command replaygain-flac $METAFLAC --add-replay-gain "$OUTPUTFILES"
;;
vorbis|ogg)
- run_command replaygain-vorbis $VORBISGAIN --album $OUTPUTFILES
+ run_command replaygain-vorbis $VORBISGAIN --album "$OUTPUTFILES"
;;
mp3)
- run_command replaygain-mp3 $MP3GAIN -a $OUTPUTFILES
+ run_command replaygain-mp3 $MP3GAIN -a "$OUTPUTFILES"
;;
*);;
esac
esac
if [ X"$USEPIPES" = "Xy" ]; then
RUN_COMMAND=""
+ # We need a way to store the creation of the files when using PIPES
+ RUN_COMMAND_PIPES="run_command encodetrack-$OUTPUT-$1 true"
else
run_command '' echo "Encoding track $1 of $TRACKS: $TRACKNAME..."
RUN_COMMAND="run_command encodetrack-$OUTPUT-$1"
;;
wav)
# In case of wav output we need nothing. Just keep the wavs.
- run_command encodetrack-$OUTPUT-$1 true
;;
esac
+ $RUN_COMMAND_PIPES
done
# Only remove .wav if the encoding succeeded
if checkerrors "encodetrack-(.{3,6})-$1"; then :; else
decho ()
{
if [ x"$DEBUG" != "x" ]; then
- DEBUGECHO=$(echo "$@" | tr -d '[]')
- echo "[DEBUG] $DEBUGECHO: `eval echo \\$${DEBUGECHO}`"
+ if echo $1 | grep -q "^\[" ; then
+ DEBUGECHO=$(echo "$@" | tr -d '[]')
+ echo "[DEBUG] $DEBUGECHO: `eval echo \\$${DEBUGECHO}`"
+ else
+ echo "[DEBUG] $1"
+ fi
fi
}
MKTOCOPTS=""
VORBISCOMMENTOPTS="-R"
METAFLACOPTS="--no-utf8-convert"
+DIFFOPTS=
# Default to one process if -j isn't specified
MAXPROCS=1
# Parse command line options
#while getopts 1a:A:bc:C:d:Dehj:klLmMnNo:pPr:Rs:S:t:T:vVxw:W: opt ; do
-while getopts 1a:bBc:C:d:Defghj:klLmMnNo:pPr:s:S:t:T:vVxw:W:z opt ; do
+while getopts 1a:bBc:C:d:Defghj:klLmMnNo:pPr:s:S:t:T:uvVxw:W:z opt ; do
case "$opt" in
1) ONETRACK=y ;;
a) ACTIONS="$OPTARG" ;;
R) DOREPLAYGAIN=y ;;
s) SHOWCDDBFIELDS="$OPTARG" ;;
S) CDSPEEDVALUE="$OPTARG" ;;
-# t) PREPROCESSFORMATS="$OPTARG"
-# PREPROCESS=y ;;
-# T) POSTPROCESSFORMATS="$OPTARG" ;;
t) STARTTRACKNUMBER="$OPTARG" ;;
T) STARTTRACKNUMBER="$OPTARG" ; STARTTRACKNUMBERTAG="y" ;;
+ u) CDDBPROTO=6 ;;
v)
echo "This is abcde v$VERSION."
echo "Usage: abcde [options] [tracks]"
fi
fi
+# If the user provided a DISCID, disable eject
+if [ -n "$DISCID" ]; then EJECTCD=n ; fi
+
# Decide if we can continue.
if [ "$ONETRACK" = "y" ]; then
# FIXME # remove check as soon as we find out about the other readers
esac
fi
+###USEPIPESSUPPORT###
+
# Rippers with USEPIPE support
# FIXME # Include here all the rippers we can figure out support pipes
PIPERIPPER_cdparanoia="-"
+PIPERIPPER_debug="-"
PIPERIPPER_flac="-c "
# Encoders with USEPIPE support
mpc)
PIPEENCODERSVARCHECK="PIPE_$MPPENCODER" ;;
esac
- if [ "$( eval echo "\$$PIPERIPPERSVARCHECK" )" = "$" ] ; then
+ decho "PIPERIPPERSVARCHECK: $( eval echo "\$$PIPERIPPERSVARCHECK" )"
+ if [ "$( eval echo "\$$PIPERIPPERSVARCHECK" )" = "$" ] || \
+ [ "$( eval echo "\$$PIPERIPPERSVARCHECK" )" = "" ] ; then
log error "no support for pipes with given ripper"
log error "read the USEPIPES file from the source tarball to get help."
log error "On a Debian system, it is under /usr/share/doc/abcde/USEPIPES.gz"
exit 1;
fi
- if [ "$( eval echo "\$$PIPEENCODERSVARCHECK" )" = "$" ] ; then
+ decho "PIPEENCODERSVARCHECK: $( eval echo "\$$PIPEENCODERSVARCHECK" )"
+ if [ "$( eval echo "\$$PIPEENCODERSVARCHECK" )" = "$" ] || \
+ [ "$( eval echo "\$$PIPEENCODERSVARCHECK" )" = "" ] ; then
log error "no support for pipes with given encoder"
log error "read the USEPIPES file from the source tarball to help"
log error "on a Debian system, read /usr/share/doc/abcde/USEPIPES.gz"
if [ "$NOGAP" = "y" ] || [ "$BATCHNORM" = "y" ]; then
:
else
+ # If we are not reading, set the encode output to loud already, so
+ # that we can see the output of the first track.
+ if [ "$MAXPROCS" = "1" ] && [ ! "$DOREAD" = "y" ]; then
+ echo "encode-output=loud" >> "$ABCDETEMPDIR/status"
+ fi
echo NEXTTRACK # Get the encoder machine churning again
if [ "$DOREAD" = "y" ]; then
if [ "$LOWDISK" = "y" ] && [ "$DOENCODE" = "y" ]; then
if [ "$DOREPLAYGAIN" = "y" ]; then
do_replaygain
fi
+
+# FIXME #
+# Check if all the encoded formats have been actually moved to the final destination
+# ...
+
# Check to see if run_command logged any errors
if [ -f "$ABCDETEMPDIR/errors" ]; then
log error "The following commands failed to run:"