X-Git-Url: https://git.hcoop.net/clinton/abcde.git/blobdiff_plain/1f1704bdf244e369e74976132f5c096e29e66d4b..76448acfe004a89d28ebaf481ac0f20ef75d6ae3:/abcde diff --git a/abcde b/abcde index b9b8d6a..af7282d 100755 --- a/abcde +++ b/abcde @@ -505,12 +505,12 @@ do_tag () echo ARTIST="$TRACKARTIST" echo ALBUM="$DALBUM" echo TITLE="$TRACKNAME" - if [ -n "$CDYEAR" ]; then + if [ -n "$CDYEAR" ]; then echo DATE="$CDYEAR" - fi - if [ -n "$CDGENRE" ]; then + fi + if [ -n "$CDGENRE" ]; then echo GENRE="$CDGENRE" - fi + fi echo TRACKNUMBER=${TRACKNUM:-$1} echo CDDB=$CDDBDISCID if [ "$(eval echo ${COMMENT})" != "" ]; then @@ -823,9 +823,18 @@ do_encode () # done #} +# do_single_gain +# variables used: +# FIXME # +do_single_gain () +{ +: +} + # do_batch_gain # variables used: # MP3GAIN, MP3GAINOPTS, VORBISGAIN, VORBISGAINOPTS +# FIXME # do_batch_gain () { # The commands here don't go through run_command because they're never supposed to be silenced @@ -959,6 +968,7 @@ do_playlist () ALBUMFILE=$(mungefilename "$DALBUM") ARTISTFILE=$(mungefilename "$DARTIST") GENRE=$(mungegenre "$GENRE") + YEAR=${CDYEAR:-$CDYEAR} if [ "$VARIOUSARTISTS" = "y" ] ; then PLAYLISTFILE=$(eval echo $VAPLAYLISTFORMAT) else @@ -1047,7 +1057,13 @@ do_discid () #elif [ -z "$DISCID" ]; then if [ -z "$DISCID" ]; then vecho -n "Getting CD track info... " + if [ "$OSFLAVOUR" = "OSX" ]; then + disktool -u ${CDROM#/dev/} + fi TRACKINFO=$($CDDISCID $CDROM) + if [ "$OSFLAVOUR" = "OSX" ]; then + disktool -m ${CDROM#/dev/} + fi # Make sure there's a CD in there by checking cd-discid's return code if [ "$?" = "1" ]; then echo "abcde error: CD could not be read. Perhaps there's no CD in the drive?" >&2 @@ -1204,9 +1220,10 @@ do_discid () cat /dev/null > "$ABCDETEMPDIR/status" fi if [ X"$CUEFILE" = "Xy" -a X"$WEHAVEACD" = "Xy" ]; then - if checkstatus cuefile ; then :; else - $MKCUE $MKCUEOPTS > $ABCDETEMPDIR/cue-$(echo $TRACKINFO | cut -f1 -d' ').txt - echo cuefile >> "$ABCDETEMPDIR/status" + if checkstatus cuefile >/dev/null ; then :; else + CUEFILE=cue-$(echo $TRACKINFO | cut -f3 -d' ').txt + $MKCUE $MKCUEOPTS > $ABCDETEMPDIR/$CUEFILE + echo cuefile=$CUEFILE >> "$ABCDETEMPDIR/status" fi fi # If we got the CDPARANOIA status and it is not recorded, save it now @@ -1222,6 +1239,19 @@ do_discid () echo "$TRACKINFO" > "$ABCDETEMPDIR/discid" } +# do_cleancue +# Create a proper CUE file based on the CUE file we created before. +do_cleancue() +{ + if checkstatus cuefile; then :; else + $CUEFILE_INPUT="$ABCDETEMPDIR/cue-$(echo $TRACKINFO | cut -f1 -d' ').txt" + ### FIXME ### checkstatus cddb + if [ "$DOCDDB" = "y" ]; then + MARKER + fi + fi +} + # do_cddbparse # Parses a CDDB file and outputs the title and the track names. # Variables: CDDBFILE @@ -1774,9 +1804,10 @@ do_cdread () # We need the first and last track for cdda2wav FIRSTTRACK=$2 LASTTRACK=$3 + UTRACKNUM=$FIRSTTRACK case "$CDROMREADERSYNTAX" in - cdparanoia) UTRACKNUM="$FIRSTTRACK-$LASTTRACK" ;; - cdda2wav) UTRACKNUM="$FIRSTTRACK+$LASTRACK" ;; + cdparanoia) READTRACKNUMS="$FIRSTTRACK-$LASTTRACK" ;; + cdda2wav) READTRACKNUMS="$FIRSTTRACK+$LASTRACK" ;; *) echo "abcde error: $CDROMREADERSYNTAX does not support ONETRACK mode" exit 1 ;; esac @@ -1803,7 +1834,7 @@ do_cdread () REDIR=">&2" fi if [ "$1" = "onetrack" ]; then - echo "Grabbing ${PIPE_MESSAGE}tracks $UTRACKNUM..." >&2 + echo "Grabbing ${PIPE_MESSAGE}tracks $UTRACKNUM - $LASTTRACK ..." >&2 else if [ -r "$CDDBDATA" ]; then TRACKNAME=$(grep ^TTITLE$CDDBTRACKNUM= "$CDDBDATA" | head -n 1 | cut -f2 -d= | tr -d \[:cntrl:\]) @@ -1813,7 +1844,8 @@ do_cdread () fi fi case "$CDROMREADERSYNTAX" in - cdparanoia) nice $READNICE $CDROMREADER -d $CDROM $UTRACKNUM $FILEARG $REDIR ;; + cdparanoia) + nice $READNICE $CDROMREADER -d $CDROM ${READTRACKNUMS:-$UTRACKNUM} $FILEARG $REDIR ;; cdda2wav) if [ "$OSFLAVOUR" = "OSX" ] ; then # Hei, we have to unmount the device before running anything like cdda2wav in OSX @@ -1829,7 +1861,7 @@ do_cdread () CDDA2WAVCDROM="$CDROMID" fi fi - nice $READNICE $CDROMREADER -D $CDDA2WAVCDROM -t $UTRACKNUM $FILEARG $REDIR + nice $READNICE $CDROMREADER -D $CDDA2WAVCDROM -t ${READTRACKNUMS:-$UTRACKNUM} $FILEARG $REDIR ;; ## FIXME ## We have an exception for dagrab, since it uses -f ## FIXME ## Shall we just use -f $FILEARG ?? @@ -1915,6 +1947,9 @@ pre_read () : } +# do_movecue +# Standalone function to move the CUE file to the final location + ############################################################################### # End of functions # @@ -2053,6 +2088,7 @@ elif [ X$(uname) = "XDarwin" ] ; then OSFLAVOUR=OSX # We should have disktool in OSX, but let's be sure... NEEDDISKTOOL=y + CDROMREADERSYNTAX=cddafs elif [ X$(uname) = "XOpenBSD" ] ; then HTTPGET=wget MD5SUM=md5 @@ -2244,6 +2280,7 @@ if [ X"$CDROM" != "X" ] ; then echo "abcde error: CDROMID not in the right format for $CDROMREADERSYNTAX" echo "Use \"cdrecord -scanbus\" to obtain a adecuate ID an set CDROMID accordingly" exit 1 + fi fi elif [ ! -e "$CDROM" -a X"$DOREAD" = "Xy" ]; then echo "abcde error: CDROM device cannot be found." >&2 @@ -2832,6 +2869,12 @@ do fi ) & done + +# Lets move the cue file +if checkstatus cuefile >/dev/null ; then + do_movecue +fi + # Go through it again and make sure there's no distmp3 stragglers, otherwise # we'll delete the files they're working on ## FIXME ## Check also for files which are encoded using PIPEs.