X-Git-Url: https://git.hcoop.net/clinton/abcde.git/blobdiff_plain/cd4b63fadbb89413d51ce99ceef817ddeb9cf4e9..01904e3c37e03b45a536974545e85c5969965501:/abcde diff --git a/abcde b/abcde index 00440e1..d03e009 100755 --- a/abcde +++ b/abcde @@ -11,7 +11,7 @@ # Copyright for this work is to expire January 1, 2010, after which it # shall be public domain. -VERSION="2.3.99-$Id$" +VERSION="2.3.99-$Id $" usage () { @@ -325,15 +325,23 @@ do_replaygain() for OUTPUT in $( echo $OUTPUTTYPE | tr , \ ) # THE OUTPUT NEEDS TO BE CORRECTED WITH THE CONTAINER? do + case $OUTPUT in + vorbis|ogg) + OUTPUT=$OGGOUTPUTCONTAINER + ;; + flac) + OUTPUT=$FLACOUTPUTCONTAINER + ;; + esac OUTPUTFILES="" for UTRACKNUM in $TRACKQUEUE do CDDBTRACKNUM=$(expr $UTRACKNUM - 1) do_getcddbinfo TRACKNAME splitvarious - TRACKFILE=$(mungefilename "$TRACKNAME") - ARTISTFILE=$(mungefilename "$TRACKARTIST") - ALBUMFILE=$(mungefilename "$DALBUM") + TRACKFILE="$(mungefilename "$TRACKNAME")" + ARTISTFILE="$(mungefilename "$TRACKARTIST")" + ALBUMFILE="$(mungefilename "$DALBUM")" do_gettracknum if [ "$VARIOUSARTISTS" = "y" ]; then OUTPUTFILE=$(eval echo $VAOUTPUTFORMAT) @@ -343,19 +351,16 @@ do_replaygain() OUTPUTFILES="$OUTPUTDIR/$OUTPUTFILE.$OUTPUT $OUTPUTFILES" done case "$OUTPUT" in - flac);; - ogg);; + flac) + run_command replaygain-flac $METAFLAC --add-replay-gain $OUTPUTFILES + ;; + vorbis|ogg) + run_command replaygain-vorbis $VORBISGAIN --album $OUTPUTFILES + ;; *);; esac - if [ "$RETURN" = "0" ]; then - run_command replaygain-$OUTPUT true - else - runcommand replaygain-$OUTPUT false - fi done - if checkerrors replaygain-.{3,4}; then - run_command replaygain false - else + if checkerrors replaygain-.{3,6}; then :; else run_command replaygain true fi fi @@ -378,34 +383,34 @@ splitvarious () if [ "$VARIOUSARTISTS" = "y" ] && [ ! "$ONETRACK" = "y" ]; then case "$VARIOUSARTISTSTYLE" in forward) - DTITLEARTIST=$(echo "$TRACKNAME" | sed 's- / -~-g') - TRACKARTIST=$(echo "$DTITLEARTIST" | cut -f1 -d~) - TRACKNAME=$(echo "$DTITLEARTIST" | cut -f2 -d~) + DTITLEARTIST="$(echo "$TRACKNAME" | sed 's- / -~-g')" + TRACKARTIST="$(echo "$DTITLEARTIST" | cut -f1 -d~)" + TRACKNAME="$(echo "$DTITLEARTIST" | cut -f2 -d~)" ;; forward-dash) - DTITLEARTIST=$(echo "$TRACKNAME" | sed 's, - ,~,g') - TRACKARTIST=$(echo "$DTITLEARTIST" | cut -f1 -d~) - TRACKNAME=$(echo "$DTITLEARTIST" | cut -f2 -d~) + DTITLEARTIST="$(echo "$TRACKNAME" | sed 's, - ,~,g')" + TRACKARTIST="$(echo "$DTITLEARTIST" | cut -f1 -d~)" + TRACKNAME="$(echo "$DTITLEARTIST" | cut -f2 -d~)" ;; reverse) - DTITLEARTIST=$(echo "$TRACKNAME" | sed 's- / -~-g') - TRACKARTIST=$(echo "$DTITLEARTIST" | cut -f2 -d~) - TRACKNAME=$(echo "$DTITLEARTIST" | cut -f1 -d~) + DTITLEARTIST="$(echo "$TRACKNAME" | sed 's- / -~-g')" + TRACKARTIST="$(echo "$DTITLEARTIST" | cut -f2 -d~)" + TRACKNAME="$(echo "$DTITLEARTIST" | cut -f1 -d~)" ;; reverse-dash) - DTITLEARTIST=$(echo "$TRACKNAME" | sed 's, - ,~,g') - TRACKARTIST=$(echo "$DTITLEARTIST" | cut -f2 -d~) - TRACKNAME=$(echo "$DTITLEARTIST" | cut -f1 -d~) + DTITLEARTIST="$(echo "$TRACKNAME" | sed 's, - ,~,g')" + TRACKARTIST="$(echo "$DTITLEARTIST" | cut -f2 -d~)" + TRACKNAME="$(echo "$DTITLEARTIST" | cut -f1 -d~)" ;; colon) - DTITLEARTIST=$(echo "$TRACKNAME" | sed 's-: -~-g') - TRACKARTIST=$(echo "$DTITLEARTIST" | cut -f1 -d~) - TRACKNAME=$(echo "$DTITLEARTIST" | cut -f2 -d~) + DTITLEARTIST="$(echo "$TRACKNAME" | sed 's-: -~-g')" + TRACKARTIST="$(echo "$DTITLEARTIST" | cut -f1 -d~)" + TRACKNAME="$(echo "$DTITLEARTIST" | cut -f2 -d~)" ;; trailing-paren) - DTITLEARTIST=$(echo "$TRACKNAME" | sed 's,^\(.*\) (\(.*\)),\1~\2,') - TRACKARTIST=$(echo "$DTITLEARTIST" | cut -f2 -d~) - TRACKNAME=$(echo "$DTITLEARTIST" | cut -f1 -d~) + DTITLEARTIST="$(echo "$TRACKNAME" | sed 's,^\(.*\) (\(.*\)),\1~\2,')" + TRACKARTIST="$(echo "$DTITLEARTIST" | cut -f2 -d~)" + TRACKNAME="$(echo "$DTITLEARTIST" | cut -f1 -d~)" ;; esac elif [ "$VARIOUSARTISTS" = "y" ] && [ "$ONETRACK" = "y" ]; then @@ -685,9 +690,7 @@ do_tag () ;; esac done - if checkerrors "tagtrack-(.{3,4})-$1"; then - run_command tagtrack-$1 false - else + if checkerrors "tagtrack-(.{3,6})-$1"; then :; else run_command tagtrack-$1 true fi @@ -719,7 +722,7 @@ do_batch_encode () else for UTRACKNUM in $TRACKQUEUE do - echo encodetrack-$UTRACKNUM >> status + run_command encodetrack-$UTRACKNUM true done fi ) @@ -868,9 +871,7 @@ do_encode () esac done # Only remove .wav if the encoding succeeded - if checkerrors "encodetrack-(.{3,4})-$1"; then - run_command encodetrack-$1 false - else + if checkerrors "encodetrack-(.{3,6})-$1"; then :; else run_command encodetrack-$1 true if [ ! "$KEEPWAVS" = "y" ] ; then rm -f "$IN" @@ -1063,11 +1064,11 @@ do_move () # ''' -> '' # '?' -> '' # Eat control characters - ALBUMFILE=$(mungefilename "$DALBUM") - ARTISTFILE=$(mungefilename "$TRACKARTIST") - TRACKFILE=$(mungefilename "$TRACKNAME") - GENRE=$(mungegenre "$GENRE") - YEAR=$(echo $CDYEAR) + ALBUMFILE="$(mungefilename "$DALBUM")" + ARTISTFILE="$(mungefilename "$TRACKARTIST")" + TRACKFILE="$(mungefilename "$TRACKNAME")" + GENRE="$(mungegenre "$GENRE")" + YEAR="$(echo $CDYEAR)" # If we want to start the tracks with a given number, we need to modify the # TRACKNUM value before evaluation # if [ -n "$STARTTRACKNUMBER" ] ; then @@ -1081,9 +1082,9 @@ do_move () # Supported variables for OUTPUTFORMAT are GENRE, ALBUMFILE, ARTISTFILE, # TRACKFILE, and TRACKNUM. if [ "$VARIOUSARTISTS" = "y" ]; then - OUTPUTFILE=$(eval echo $VAOUTPUTFORMAT) - else - OUTPUTFILE=$(eval echo $OUTPUTFORMAT) + OUTPUTFILE="$(eval echo "$VAOUTPUTFORMAT")" + else + OUTPUTFILE="$(eval echo "$OUTPUTFORMAT")" fi if checkerrors "tagtrack-$OUTPUT-$1"; then :; else # Once we know the specific output was successful, we can change the OUTPUT to the value containing the container @@ -1096,7 +1097,7 @@ do_move () ;; esac # Check that the directory for OUTPUTFILE exists, if it doesn't, create it - OUTPUTFILEDIR=$(dirname "$OUTPUTDIR/$OUTPUTFILE") + OUTPUTFILEDIR="$(dirname "$OUTPUTDIR/$OUTPUTFILE")" # mkdir -p shouldn't return an error if the directory already exists mkdir -p "$OUTPUTFILEDIR" run_command movetrack-$1 mv "$ABCDETEMPDIR/track$1.$OUTPUT" "$OUTPUTDIR/$OUTPUTFILE.$OUTPUT" @@ -1137,11 +1138,19 @@ do_playlist () { for OUTPUT in $(echo $OUTPUTTYPE | tr , \ ) do + case $OUTPUT in + vorbis|ogg) + OUTPUT=$OGGOUTPUTCONTAINER + ;; + flac) + OUTPUT=$FLACOUTPUTCONTAINER + ;; + esac # Create a playlist file for the playlist data to go into. # We used to wipe it out if it existed. Now we request permision if interactive. for LASTTRACK in $TRACKQUEUE; do :; done - ALBUMFILE=$(mungefilename "$DALBUM") - ARTISTFILE=$(mungefilename "$DARTIST") + ALBUMFILE="$(mungefilename "$DALBUM")" + ARTISTFILE="$(mungefilename "$DARTIST")" GENRE=$(mungegenre "$GENRE") YEAR=${CDYEAR:-$CDYEAR} if [ "$VARIOUSARTISTS" = "y" ] ; then @@ -1180,9 +1189,9 @@ do_playlist () #TRACKNAME=$(grep ^TTITLE$CDDBTRACKNUM= "$CDDBDATA" | cut -f2 -d= | tr -d \[:cntrl:\] | sed 's/\ \+$//') do_getcddbinfo TRACKNAME splitvarious - TRACKFILE=$(mungefilename "$TRACKNAME") - ARTISTFILE=$(mungefilename "$TRACKARTIST") - ALBUMFILE=$(mungefilename "$DALBUM") + TRACKFILE="$(mungefilename "$TRACKNAME")" + ARTISTFILE="$(mungefilename "$TRACKARTIST")" + ALBUMFILE="$(mungefilename "$DALBUM")" # If we want to start the tracks with a given number, we need to modify the # TRACKNUM value before evaluation # if [ -n "$STARTTRACKNUMBER" ] ; then @@ -1278,12 +1287,10 @@ do_discid () if [ ! "$RET" = "0" ];then echo "Warning: Something went wrong while querying the CD... Maybe a DATA CD?" fi - TRACKS="$( echo "$CDPARANOIAOUTPUT" | egrep '^[[:space:]]+[[:digit:]]' | tail -n 1 | get_first | tr -d "." | tr '\n' ' ' )" + TRACKS="$(echo "$CDPARANOIAOUTPUT" | egrep '^[[:space:]]+[[:digit:]]' | tail -n 1 | get_first | tr -d "." | tr '\n' ' ')" CDPARANOIAAUDIOTRACKS="$TRACKS" else - if [ -f "$ABCDETEMPDIR/status" ] && checkstatus cdparanoia-audio-tracks ; then - TRACKS=$( cat "$ABCDETEMPDIR/cdparanoia-audio-tracks" ) - else + if [ -f "$ABCDETEMPDIR/status" ] && TRACKS=$(checkstatus cdparanoia-audio-tracks); then :; else TRACKS=$(echo $TRACKINFO | cut -f2 -d' ') fi fi @@ -1414,10 +1421,8 @@ do_discid () fi # If we got the CDPARANOIA status and it is not recorded, save it now if [ -n "$CDPARANOIAAUDIOTRACKS" ]; then - if checkstatus cdparanoia-audio-tracks; then :; else - if echo "$CDPARANOIAAUDIOTRACKS" >> "$ABCDETEMPDIR/cdparanoia-audio-tracks"; then - echo "cdparanoia-audio-tracks" >> "$ABCDETEMPDIR/status" - fi + if checkstatus cdparanoia-audio-tracks > /dev/null 2>&1; then :; else + echo cdparanoia-audio-tracks=$CDPARANOIAAUDIOTRACKS >> "$ABCDETEMPDIR/status" fi fi @@ -2849,8 +2854,8 @@ if [ "$USEPIPES" = "y" ]; then esac 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 + echo "read the USEPIPES file from the source tarball to get help." >&2 + echo "On a Debian system, it is under /usr/share/doc/abcde/USEPIPES.gz" >&2 exit 1; fi if [ ! -n "$( eval echo "\$$PIPEENCODERSVARCHECK" )" ] ; then @@ -2925,7 +2930,7 @@ if [ "$DOCDDB" = "y" ]; then fi do_cddbedit - eval $($CDDBTOOL parse "$CDDBDATA") + eval "$($CDDBTOOL parse "$CDDBDATA")" fi # Before reading tracks, we set the speed of the device