echo "-n No lookup. Don't query CDDB, just create and use template"
echo "-N Noninteractive. Never prompt for anything"
echo "-m Modify playlist to include CRLF endings, to comply with some players"
+echo " WARNING: Deprecated. Use \"cue\" action"
echo "-M Create a CUE file"
echo "-o <type1[,type2]...>"
echo " Output file type(s) (vorbis,mp3,flac,spx,mpc,wav,m4a). Defaults to vorbis"
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 (UTF8) tags and comments"
echo "-U Do NOT use UNICODE (UTF8) tags and comments"
echo "-v Show version number and exit"
echo "-V Be a bit more verbose about what is happening behind the scenes"
if [ ! "$@" = "" ]; then
# Cut off any command-line option we added in
X=$(echo $@ | cut -d' ' -f2)
+ # Test for built-in abcde.function
+ [ "$X" != "${X#abcde.}" ] && type $X >/dev/null 2>&1 && return
if [ "$(which $X)" = "" ]; then
log error "$X is not in your path." >&2
log info "Define the full path to the executable if it exists on your system." >&2
done
case "$OUTPUT" in
flac)
- run_command replaygain-flac $METAFLAC --add-replay-gain "${OUTPUTFILES[@]}"
+ run_command replaygain-flac nice $ENCNICE $METAFLAC --add-replay-gain "${OUTPUTFILES[@]}"
;;
vorbis|ogg)
- run_command replaygain-vorbis $VORBISGAIN --album "${OUTPUTFILES[@]}"
+ run_command replaygain-vorbis nice $ENCNICE $VORBISGAIN --album "${OUTPUTFILES[@]}"
;;
mp3)
- run_command replaygain-mp3 $MP3GAIN -a "${OUTPUTFILES[@]}"
+ run_command replaygain-mp3 nice $ENCNICE $MP3GAIN -a "${OUTPUTFILES[@]}"
;;
mpc)
- run_command replaygain-mpc $MPPGAIN --auto "${OUTPUTFILES[@]}"
+ run_command replaygain-mpc nice $ENCNICE $MPPGAIN --auto "${OUTPUTFILES[@]}"
;;
*);;
esac
eyed3)
# FIXME # track numbers in mp3 come with 1/10, so we cannot
# happily substitute them with $TRACKNUM
- run_command tagtrack-$OUTPUT-$1 $TAGGER $TAGGEROPTS \
+ run_command tagtrack-$OUTPUT-$1 nice $ENCNICE $TAGGER $TAGGEROPTS \
--comment=::"$COMMENTOUTPUT" -A "$DALBUM" \
-a "$TRACKARTIST" -t "$TRACKNAME" -Y "$CDYEAR" \
-G "$GENREID" -n "${TRACKNUM:-$1}" "${TRACKNUM:+-N $TRACKS}" \
;;
# FIXME # Still not activated...
id3ed)
- run_command tagtrack-$OUTPUT-$1 $TAGGER $TAGGEROPTS -c "$COMMENTOUTPUT" \
+ run_command tagtrack-$OUTPUT-$1 nice $ENCNICE $TAGGER $TAGGEROPTS -c "$COMMENTOUTPUT" \
-a "$DALBUM" -n "$TRACKARTIST" -s "$TRACKNAME" -y "$CDYEAR" \
-g "$GENREID" -k "${TRACKNUM:-$1}" \
"$ABCDETEMPDIR/track$1.$OUTPUT"
*)
# FIXME # track numbers in mp3 come with 1/10, so we cannot
# happily substitute them with $TRACKNUM
- run_command tagtrack-$OUTPUT-$1 $TAGGER $TAGGEROPTS -c "$COMMENTOUTPUT" \
+ run_command tagtrack-$OUTPUT-$1 nice $ENCNICE $TAGGER $TAGGEROPTS -c "$COMMENTOUTPUT" \
-A "$DALBUM" -a "$TRACKARTIST" -t "$TRACKNAME" -y "$CDYEAR" \
-g "$GENREID" -T "${TRACKNUM:-$1/$TRACKS}" \
"$ABCDETEMPDIR/track$1.$OUTPUT"
*) echo COMMENT="$COMMENTOUTPUT";;
esac
fi
- ) | run_command tagtrack-$OUTPUT-$1 $VORBISCOMMENT $VORBISCOMMENTOPTS -w \
+ ) | run_command tagtrack-$OUTPUT-$1 nice $ENCNICE $VORBISCOMMENT $VORBISCOMMENTOPTS -w \
"$ABCDETEMPDIR/track$1.uncommented.$OGGOUTPUTCONTAINER" "$ABCDETEMPDIR/track$1.$OGGOUTPUTCONTAINER"
# Doublecheck that the commented file was created successfully before wiping the original
if [ -f "$ABCDETEMPDIR/track$1.$OGGOUTPUTCONTAINER" ]; then
*) echo COMMENT="$COMMENTOUTPUT";;
esac
fi
- ) | run_command tagtrack-$OUTPUT-$1 $METAFLAC $METAFLACOPTS ${IMPORTCUESHEET:+--import-cuesheet-from="$ABCDETEMPDIR/$CUEFILE"} --import-tags-from=- "$ABCDETEMPDIR/track$1.$FLACOUTPUTCONTAINER"
+ ) | run_command tagtrack-$OUTPUT-$1 nice $ENCNICE $METAFLAC $METAFLACOPTS ${IMPORTCUESHEET:+--import-cuesheet-from="$ABCDETEMPDIR/$CUEFILE"} --import-tags-from=- "$ABCDETEMPDIR/track$1.$FLACOUTPUTCONTAINER"
;;
spx)
run_command tagtrack-$OUTPUT-$1 true
case "$OUTPUT" in
mp3)
case "$MP3ENCODERSYNTAX" in
- lame)
+ lame|toolame)
(
cd "$ABCDETEMPDIR"
TRACKFILES=
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"
+ # When pipping it does not make sense to have a higher nice for
+ # reading than for encoding, since it will be hold by the
+ # encoding process. Setting an effective nice, to calm down a
+ # bit the reading process.
+ EFFECTIVE_NICE=$READNICE
else
run_command '' echo "Encoding track $1 of $TRACKS: $TRACKNAME..."
RUN_COMMAND="run_command encodetrack-$OUTPUT-$1"
+ EFFECTIVE_NICE=$ENCNICE
fi
case "$OUTPUT" in
mp3)
case "$2" in
%local*%)
case "$MP3ENCODERSYNTAX" in
- lame|gogo) $RUN_COMMAND nice $ENCNICE $MP3ENCODER $MP3ENCODEROPTS "$IN" "$OUT" ;;
- bladeenc) $RUN_COMMAND nice $ENCNICE $MP3ENCODER $MP3ENCODEROPTS -quit "$IN" ;;
- l3enc|xingmp3enc) $RUN_COMMAND nice $ENCNICE $MP3ENCODER "$IN" "$OUT" $MP3ENCODEROPTS ;;
+ lame|toolame|gogo) $RUN_COMMAND nice $EFFECTIVE_NICE $MP3ENCODER $MP3ENCODEROPTS "$IN" "$OUT" ;;
+ bladeenc) $RUN_COMMAND nice $EFFECTIVE_NICE $MP3ENCODER $MP3ENCODEROPTS -quit "$IN" ;;
+ l3enc|xingmp3enc) $RUN_COMMAND nice $EFFECTIVE_NICE $MP3ENCODER "$IN" "$OUT" $MP3ENCODEROPTS ;;
# FIXME # Relates to the previous FIXME since it might need the "-if" removed.
- mp3enc) $RUN_COMMAND nice $ENCNICE $MP3ENCODER -if "$IN" -of "$OUT" $MP3ENCODEROPTS ;;
+ mp3enc) $RUN_COMMAND nice $EFFECTIVE_NICE $MP3ENCODER -if "$IN" -of "$OUT" $MP3ENCODEROPTS ;;
esac
;;
*)
case "$2" in
%local*%)
case "$OGGENCODERSYNTAX" in
- vorbize) $RUN_COMMAND nice $ENCNICE $OGGENCODER $OGGENCODEROPTS -w "$OUT" "$IN" ;;
- oggenc) $RUN_COMMAND nice $ENCNICE $OGGENCODER $OGGENCODEROPTS -o "$OUT" "$IN" ;;
+ vorbize) $RUN_COMMAND nice $EFFECTIVE_NICE $OGGENCODER $OGGENCODEROPTS -w "$OUT" "$IN" ;;
+ oggenc) $RUN_COMMAND nice $EFFECTIVE_NICE $OGGENCODER $OGGENCODEROPTS -o "$OUT" "$IN" ;;
esac
;;
*)
case "$2" in
%local*%)
case "$FLACENCODERSYNTAX" in
- flac) $RUN_COMMAND nice $ENCNICE $FLACENCODER -f $FLACENCODEROPTS -o "$OUT" "$IN" ;;
+ flac) $RUN_COMMAND nice $EFFECTIVE_NICE $FLACENCODER -f $FLACENCODEROPTS -o "$OUT" "$IN" ;;
esac
;;
*)
fi
# Quick hack to avoid tagging Ogg/Speex, since there is no other way to tag than inline tagging
if [ ! "$DOTAG" = "y" ]; then
- $RUN_COMMAND nice $ENCNICE $SPEEXENCODER $SPEEXENCODEROPTS --author "$TRACKARTIST" --title "$TRACKNAME" "$COMMENT" "$IN" "$OUT"
+ $RUN_COMMAND nice $EFFECTIVE_NICE $SPEEXENCODER $SPEEXENCODEROPTS --author "$TRACKARTIST" --title "$TRACKNAME" "$COMMENT" "$IN" "$OUT"
else
- $RUN_COMMAND nice $ENCNICE $SPEEXENCODER $SPEEXENCODEROPTS "$IN" "$OUT"
+ $RUN_COMMAND nice $EFFECTIVE_NICE $SPEEXENCODER $SPEEXENCODEROPTS "$IN" "$OUT"
fi
;;
mpc)
# errors, so I have not tried it myself.
## FIXME ## Needs some cleanup to determine if an empty tag sent
## FIXME ## to the encoder ends up empty.
- $RUN_COMMAND nice $ENCNICE $MPPENCODER $MPPENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" --title "$TRACKNAME" --track "$1" --genre "$CDGENRE" --year "$CDYEAR" --comment "$COMMENT" "$IN" "$OUT"
+ $RUN_COMMAND nice $EFFECTIVE_NICE $MPPENCODER $MPPENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" --title "$TRACKNAME" --track "$1" --genre "$CDGENRE" --year "$CDYEAR" --comment "$COMMENT" "$IN" "$OUT"
;;
m4a)
# Quick hack to avoid tagging Ogg/Speex, since there is no other way to tag than inline tagging
if [ ! "$DOTAG" = "y" ]; then
- $RUN_COMMAND nice $ENCNICE $AACENCODER $AACENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" --title "$TRACKNAME" --track "$1" --genre "$CDGENRE" --year "$CDYEAR" --comment "$COMMENT" -o "$OUT" "$IN"
+ $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" --title "$TRACKNAME" --track "$1" --genre "$CDGENRE" --year "$CDYEAR" --comment "$COMMENT" -o "$OUT" "$IN"
else
$RUN_COMMAND nice $ENCNICE $AACENCODER $AACENCODEROPTS -o "$OUT" "$IN"
done
}
+# abcde.cue2discid
+# This function reads a cuefile on stdin and writes an extended
+# cddb query on stdout. Any PREGAP for track 1 is properly
+# handled, although cue files embedded in FLAC files do not
+# appear to properly store the PREGAP setting. :(
+abcde.cue2discid () {
+
+ cddb_sum () {
+ val=$1
+ ret=0
+ while [ $val -gt 0 ] ; do
+ ret=$(( $ret + ( $val % 10) ))
+ val=$(( $val / 10 ))
+ done
+ echo $ret
+ }
+
+ msf2lba () {
+ OIFS="$IFS"
+ IFS=":"
+ set -- $1
+ IFS="$OIFS"
+ local first second third
+ first=$(expr ${1} + 0 )
+ second=$(expr ${2} + 0 )
+ third=$(expr ${3} + 0 )
+
+ echo $(( ((($first * 60) + $second) * 75) + $third ))
+ }
+
+ OFFSET=150
+ PREGAP=0
+ LEADOUT=0
+ LEADIN=88200
+ i=0
+ N=0
+
+ while read line ; do
+ set -- $line
+ case "$1" in
+ TRACK) i=$(( i + 1 ))
+ ;;
+ INDEX) if [ "$2" -eq 1 ] ; then
+ LBA=$(msf2lba $3)
+ START=$(( $LBA + $PREGAP + $OFFSET ))
+ eval TRACK$i=$START
+ X=$(cddb_sum $(( $START / 75 )) )
+ N=$(( $N + $X ))
+ fi
+ ;;
+ PREGAP) PREGAP=$(msf2lba $2)
+ ;;
+ REM) case "$2" in
+ FLAC__lead-out)
+ LEADOUT=$(( $4 / 588 ))
+ ;;
+ FLAC__lead-in)
+ LEADIN=$(( $3 / 588 ))
+ ;;
+ esac
+ ;;
+ esac
+
+ done
+
+ TRACKS=$i
+ LEADOUT=$(( $LEADOUT + $LEADIN ))
+
+ LENGTH=$(( $LEADOUT/75 - $TRACK1/75 ))
+ DISCID=$(( ( $N % 255 ) * 2**24 | $LENGTH * 2**8 | $TRACKS ))
+ printf "%08x %i" $DISCID $TRACKS
+
+ j=1
+ while [ $j -le $TRACKS ] ; do
+ eval echo -n "\" \$TRACK$j\""
+ j=$((j+1))
+ done
+ echo " $(( $LEADOUT / 75 ))"
+}
+
+# abcde.mkcue
+# abcde.mkcue [--wholedisk]
+# This creates a cuefile directly from the extended discid information
+# The --wholedisk option controls whether we're ripping data from the
+# start of track one or from the start of the disk (usually, but not
+# always the same thing!)
+#
+# Track one leadin/pregap (if any) handeling:
+# --wholedisk specified:
+# TRACK 01 AUDIO
+# INDEX 00 00:00:00
+# INDEX 01 <pregap value>
+# Remaining track index values unchanged from disc TOC
+#
+# --wholedisk not specified
+# TRACK 01 AUDIO
+# PREGAP <pregap value>
+# INDEX 01 00:00:00
+# Remaining track index values offset by <pregap value>
+#
+# Variables used:
+# TRACKINFO
+abcde.mkcue () {
+
+ echomsf () {
+ printf "$1%02i:%02i:%02i\n" $(($2/4500)) $((($2/75)%60)) $(($2%75))
+ }
+
+ local MODE DISCID TRACKS
+ local i OFFSET LBA
+
+
+ if [ "$1" = --wholedisc ] ; then
+ MODE=INDEX
+ else
+ MODE=PREGAP
+ fi
+
+ set -- $TRACKINFO
+
+ DISCID=$1
+ TRACKS=$2
+ shift 2
+
+ echo REM DISCID $DISCID
+ echo FILE \"dummy.wav\" WAVE
+
+ if [ $1 -ne 150 ] ; then
+ if [ $MODE = PREGAP ] ; then
+ OFFSET=$1
+ else
+ OFFSET=150
+ fi
+ fi
+
+ i=1
+ while [ $i -le "$TRACKS" ] ; do
+ LBA=$(( $1 - $OFFSET ))
+ printf " TRACK %02i AUDIO\n" $i
+ if [ $i -eq 1 -a $1 -ne 150 ] ; then
+ if [ $MODE = PREGAP ] ; then
+ echomsf " PREGAP " $(($OFFSET-150))
+ else
+ echo " INDEX 00 00:00:00"
+ fi
+ fi
+ echomsf " INDEX 01 " $LBA
+ i=$(($i+1))
+ shift
+ done
+}
+
# do_discid
# This essentially the start of things
do_discid ()
flac)
if $METAFLAC $METAFLACOPTS --export-cuesheet-to=- "$CDROM" > /dev/null 2>&1 ; then
case "$CUE2DISCID" in
+ # FIXME # right now we have 2 cue2discid internal
+ # implementations: builtin and abcde.cue2discid. Test
+ # both of them and decide which one we want to use.
builtin)
+ #vecho "Using builtin cue2discid implementation..."
CUESHEET="$(metaflac $METAFLACOPTS --export-cuesheet-to=- "$CDROM")"
#TRACKS=$(echo $CUESHEET | egrep "TRACK \+[[:digit:]]\+ \+AUDIO" |wc -l)
makeids
;;
*)
+ #vecho "Using external python cue2discid implementation..."
TRACKINFO=$($METAFLAC $METAFLACOPTS --export-cuesheet-to=- "$CDROM" | $CUE2DISCID)
;;
esac
fi
;;
# cdparanoia|debug)
-# CDPARANOIAOUTPUT="$( $CDROMREADER -$CDPARANOIACDROMBUS $CDROM -Q --verbose 2>&1 )"
+# CDPARANOIAOUTPUT="$( $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" -Q --verbose 2>&1 )"
# RET=$?
# if [ ! "$RET" = "0" ];then
# log warning "something went wrong while querying the CD... Maybe a DATA CD?"
# ;;
*)
case "$CDDBMETHOD" in
- cddb) TRACKINFO=$($CDDISCID $CDROM) ;;
+ cddb) TRACKINFO=$($CDDISCID "$CDROM") ;;
# FIXME # musicbrainz needs a cleanup
- musicbrainz) TRACKINFO=$($MUSICBRAINZ -c $CDROM ) ;;
+ musicbrainz) TRACKINFO=$($MUSICBRAINZ -c "$CDROM" ) ;;
esac
;;
esac
cdparanoia|debug)
if [ "$WEHAVEACD" = "y" ]; then
vecho "Querying the CD for audio tracks..."
- CDPARANOIAOUTPUT="$( $CDROMREADER -$CDPARANOIACDROMBUS $CDROM -Q --verbose 2>&1 )"
+ CDPARANOIAOUTPUT="$( $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" -Q --verbose 2>&1 )"
RET=$?
if [ ! "$RET" = "0" ];then
log warning "something went wrong while querying the CD... Maybe a DATA CD?"
# Store the abcde version in the status file.
echo "abcde-version=$VERSION" >> "$ABCDETEMPDIR/status"
fi
- if [ X"$MAKECUEFILE" = "Xy" -a X"$WEHAVEACD" = "Xy" ]; then
+ if [ X"$DOCUE" = "Xy" -a X"$WEHAVEACD" = "Xy" ]; then
if checkstatus cuefile > /dev/null 2>&1 ; then :; else
CUEFILE=cue-$(echo "$TRACKINFO" | cut -f1 -d' ').txt
vecho "Creating cue file..."
case $CDROMREADERSYNTAX in
flac)
- if $METAFLAC --export-cuesheet-to=- $CDROM > "$ABCDETEMPDIR/$CUEFILE"; then :; else
+ if $METAFLAC --export-cuesheet-to=- "$CDROM" > "$ABCDETEMPDIR/$CUEFILE"; then
+ echo cuefile=$CUEFILE >> "$ABCDETEMPDIR/status"
+ else
log warning "the input flac file does not contain a cuesheet."
fi
;;
n=1
echo "PERFORMER \"$DARTIST\"" >> "$CUEFILE_OUT"
echo "TITLE \"$DALBUM\"" >> "$CUEFILE_OUT"
+ # Set IFS to <newline> to prevent read from swallowing spaces and tabs
+ OIFS="$IFS"
+ IFS='
+'
cat "$CUEFILE_IN" | while read line
do
if echo "$line" | grep "INDEX 01" > /dev/null 2>&1 ; then
+# FIXME # Possible patch: remove the line above, uncomment the 2 lines below.
+# echo "$line" >> "$CUEFILE_OUT"
+# if echo "$line" | grep "^[[:space:]]*TRACK" > /dev/null 2>&1 ; then
eval track="\$TRACK$n"
n=$(expr $n + 1)
- echo "TITLE \"$track\"" >> "$CUEFILE_OUT"
+ echo " TITLE \"$track\"" >> "$CUEFILE_OUT"
fi
+# FIXME # If the lines above are uncommented, remove the line below.
echo "$line" >> "$CUEFILE_OUT"
done
+ IFS="$OIFS"
mv "$CUEFILE_OUT" "$CUEFILE_IN"
echo "cleancuefile" >> "$ABCDETEMPDIR/status"
fi
do_musicbrainz ()
{
+# Use MBE_TOCGetCDIndexId on a perl query
:
}
UTRACKNUM=$FIRSTTRACK
case "$CDROMREADERSYNTAX" in
flac) READTRACKNUMS="$FIRSTTRACK.1-$(($LASTTRACK + 1)).0" ;;
- cdparanoia) READTRACKNUMS="$FIRSTTRACK-$LASTTRACK" ;;
+ cdparanoia)
+ #XX FIXME XX
+ # Add a variable to check if tracks are provided in command line and if not, use "0-" to rip the tracks
+ READTRACKNUMS="$FIRSTTRACK-$LASTTRACK" ;;
cdda2wav) READTRACKNUMS="$FIRSTTRACK+$LASTTRACK" ;;
*) echo "abcde error: $CDROMREADERSYNTAX does not support ONETRACK mode"
exit 1 ;;
STRIPTRACKNUM=$(expr $UTRACKNUM + 0)
nice $READNICE $FLAC -d -f --cue=${READTRACKNUMS:-$STRIPTRACKNUM.1-$(($STRIPTRACKNUM + 1)).0} "$FILEARG" "$CDROM" ;;
cdparanoia)
- nice $READNICE $CDROMREADER -$CDPARANOIACDROMBUS $CDROM ${READTRACKNUMS:-$UTRACKNUM} "$FILEARG" $REDIR ;;
+ nice $READNICE $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" ${READTRACKNUMS:-$UTRACKNUM} "$FILEARG" $REDIR ;;
cdda2wav)
if [ "$OSFLAVOUR" = "OSX" ] ; then
# Hei, we have to unmount the device before running anything like cdda2wav in OSX
;;
## FIXME ## We have an exception for dagrab, since it uses -f
## FIXME ## Shall we just use -f $FILEARG ??
- dagrab) nice $READNICE $CDROMREADER -d $CDROM -v $UTRACKNUM "$FILEARG" $REDIR
+ dagrab) nice $READNICE $CDROMREADER -d "$CDROM" -v $UTRACKNUM "$FILEARG" $REDIR
;;
cddafs)
# Find the track's mounted path
else
false
fi ;;
- debug) nice $READNICE $CDROMREADER -$CDPARANOIACDROMBUS $CDROM -w $UTRACKNUM-[:1] "$FILEARG" $REDIR
+ debug) nice $READNICE $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" -w $UTRACKNUM-[:1] "$FILEARG" $REDIR
;;
esac
RETURN=$?
PADTRACKS=n
NOGAP=n
BATCHNORM=n
+NOCDDBQUERY=n
# If using scsi devices, cdda2wav needs a CDROMID, instead of a device node
# i.e. CDROMID="1,0,0"
MKCUE=mkcue
MKTOC=cdrdao
DIFF=diff
-CUE2DISCID=cue2discid
+CUE2DISCID=builtin
# Options for programs called from abcde
# mp3
# This option is basicaly for Debian package dependencies:
# List of prefered outputs - by default, run with whatever we have in the path
-DEFAULT_OUTPUT_BINARIES=vorbis:oggenc,flac:flac,mp3:lame,mp3:bladeenc,spx:speex,m4a:faac
+DEFAULT_OUTPUT_BINARIES=vorbis:oggenc,flac:flac,mp3:toolame,mp3:lame,mp3:bladeenc,spx:speex,m4a:faac
# List of prefered cdromreaders - by default, run whichever we have in the path
DEFAULT_CDROMREADERS="cdparanoia cdda2wav"
if [ "$HTTPGETOPTS" = "" ] ; then
case $HTTPGET in
- wget) HTTPGETOPTS="-q -O -";;
+ wget) HTTPGETOPTS="-q -nv -O -";;
curl) HTTPGETOPTS="-f -s";;
fetch)HTTPGETOPTS="-q -o -";;
ftp) HTTPGETOPTS="-a -V -o - ";;
# Parse command line options
#while getopts 1a: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:uvVxw:W:z opt ; do
+while getopts 1a:bBc:C:d:Defghj:klLmMnNo:pPr:s:S:t:T:UvVxX:w:W:z opt ; do
case "$opt" in
1) ONETRACK=y ;;
a) ACTIONS="$OPTARG" ;;
n) CDDBAVAIL=n ;;
N) INTERACTIVE=n ;;
m) DOSPLAYLIST=y ;;
- M) MAKECUEFILE=y ;;
+ M) DOCUE=y ;;
o) OUTPUTTYPE="$OPTARG" ;;
p) PADTRACKS=y ;;
P) USEPIPES=y ;;
S) CDSPEEDVALUE="$OPTARG" ;;
t) STARTTRACKNUMBER="$OPTARG" ;;
T) STARTTRACKNUMBER="$OPTARG" ; STARTTRACKNUMBERTAG="y" ;;
- u) CDDBPROTO=6 ;;
U) CDDBPROTO=5 ;;
v)
echo "This is abcde v$VERSION."
;;
V) EXTRAVERBOSE="y" ;;
x) EJECTCD="y" ;;
+ X) CUE2DISCID="$OPTARG" ;;
w) COMMENT="$OPTARG" ;;
W) if echo $OPTARG | grep "[[:digit:]]" > /dev/null 2>&1 ; then
STARTTRACKNUMBER="${OPTARG}01" ; STARTTRACKNUMBERTAG="y" ; COMMENT="CD${OPTARG}"
fi
;;
z) DEBUG=y ; CDROMREADERSYNTAX=debug ; EJECTCD="n" ;;
- Z) CUE2DISCID=builtin;;
?) usage; exit ;;
esac
done
# ripping, we have a mixture of sanity checks, verifications, default settigs
# and other crazy stuff that interdepends, but hey, someone has to do it.
+# If NOCDDBQUERY is set, don't query the CDDB server.
+if [ "$NOCDDBQUERY" = "y" ]; then
+ CDDBAVAIL="n"
+fi
+
# If the user specified a flac file, then switch to special flac mode
if echo "$CDROM" | grep -i '.flac$' > /dev/null 2>&1 ; then
if [ ! -f "$CDROM" ]; then
DOREPLAYGAIN=n
DOPLAYLIST=n
DOCLEAN=n
+DOCUE=n
for ACTION in $(echo $ACTIONS | tr , \ )
do
case $ACTION in
default) DOCDDB=y; DOREAD=y; DOENCODE=y; DOTAG=y; DOMOVE=y; DOCLEAN=y;;
+ cue) DOCUE=y ; MAKECUEFILE=y ;;
cddb) DOCDDB=y;;
read) DOREAD=y;;
normalize) DONORMALIZE=y; DOREAD=y;;
[ "$FLACENCODERSYNTAX" = "default" ] && FLACENCODERSYNTAX=flac
[ "$DOTAG" = "y" ] && NEEDMETAFLAC=y
[ "$DOREPLAYGAIN" = "y" ] && NEEDMETAFLAC=y
- [ "$ONETRACK" = "y" ] && [ "$MAKECUEFILE" = "y" ] && NEEDMETAFLAC=y
+ [ "$ONETRACK" = "y" ] && [ "$DOCUE" = "y" ] && NEEDMETAFLAC=y
;;
spx)
[ "$SPEEXENCODERSYNTAX" = "default" ] && SPEEXENCODERSYNTAX=speexenc
:
fi
fi
-if [ "$MAKECUEFILE" = "y" ]; then
+if [ "$DOCUE" = "y" ]; then
NEEDCUEREADER=y
fi
elif [ X"$(uname)" = X"Darwin" ] ; then
disktool -e ${CDROM#/dev/} 0
else
- $EJECT $EJECTOPTS $CDROM
+ $EJECT $EJECTOPTS "$CDROM"
fi
#fi
fi