Added DISCNUMBER to Ogg/Vorbis and FLAC
[clinton/abcde.git] / abcde
diff --git a/abcde b/abcde
index 7c84283..5c934ce 100755 (executable)
--- a/abcde
+++ b/abcde
@@ -362,11 +362,11 @@ checkexec ()
                        log info  "Define the full path to the executable if it exists on your system." >&2
                        if [ -e /etc/debian_release ] ; then
                                case $X in
-                                       oggenc) MISSING_PACKAGE=vorbis-tools ;;
-                                       lame)   MISSING_PACKAGE=lame ;;
-                                       flac)   MISSING_PACKAGE=flac ;;
+                                       oggenc)         MISSING_PACKAGE=vorbis-tools ;;
+                                       lame|flac)      MISSING_PACKAGE=$X ;;
                                esac
                                log info "Hint: apt-get install $MISSING_PACKAGE" >&2
+                       fi
                        exit 1
                elif [ ! -x "$(which $X)" ]; then
                        log error "$X is not executable." >&2
@@ -517,6 +517,8 @@ do_replaygain()
                                TRACKFILE="$(mungefilename "$TRACKNAME")"
                                ARTISTFILE="$(mungefilename "$TRACKARTIST")"
                                ALBUMFILE="$(mungefilename "$DALBUM")"
+                       GENRE="$(mungegenre "$GENRE")"
+                       YEAR=${CDYEAR:-$CDYEAR}
                                gettracknum
                                if [ "$ONETRACK" = "y" ]; then 
                                        if [ "$VARIOUSARTISTS" = "y" ]; then
@@ -845,6 +847,9 @@ do_tag ()
                                                echo GENRE="$CDGENRE"
                                        fi      
                                        echo TRACKNUMBER=${TRACKNUM:-$1}
+                                       if [ -n "$DISCNUMBER" ]; then
+                                               echo DISCNUMBER="$DISCNUMBER"
+                                       fi
                                        echo CDDB=$CDDBDISCID
                                        if [ "$(eval echo ${COMMENT})" != "" ]; then
                                                case "$COMMENTOUTPUT" in
@@ -877,6 +882,9 @@ do_tag ()
                                echo GENRE="$CDGENRE"
                        fi      
                        echo TRACKNUMBER="${TRACKNUM:-$1}"
+                       if [ -n "$DISCNUMBER" ]; then
+                               echo DISCNUMBER="$DISCNUMBER"
+                       fi
                        echo CDDB="$CDDBDISCID"
                        if [ "$(eval echo ${COMMENT})" != "" ]; then
                                case "$COMMENTOUTPUT" in
@@ -1458,6 +1466,7 @@ do_playlist ()
                                        read ERASEPLAYLIST
                                        case $ERASEPLAYLIST in
                                                e|E|a|A|k|K) DONE=y ;;
+                                               "") ERASEPLAYLIST=e ; DONE=y ;;
                                                *) ;;
                                        esac
                                done
@@ -3167,7 +3176,10 @@ while getopts 1a:bBc:C:d:Defghj:klLmMnNo:pPr:s:S:t:T:UvVxX:w:W:z opt ; do
                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}"
+                    STARTTRACKNUMBER="${OPTARG}01"
+                        STARTTRACKNUMBERTAG="y"
+                        COMMENT="CD${OPTARG}"
+                        DISCNUMBER="${OPTARG}"
                   else
                     log error "argument of -W must be integer"
                         exit 1