#!/bin/bash

echo probing...

if cdparanoia -Q 2> cd-rip-out.tmp~
then
    echo "track(s) found:"
    grep -e '^[[:blank:]]*[0-9]*\.' cd-rip-out.tmp~ > cd-rip-toc.tmp~
    cut -b -24  cd-rip-toc.tmp~
    tracks=$( cut -d. -f 1 cd-rip-toc.tmp~ )

    read -p "artist : " artist
    read -p "album  : " album
    read -p "year   : " year
    read -p "grab list: [enter=all] " _track_list

    if [ "$_track_list" == "" ]
    then
        track_list=( $tracks ) # found by probing
    else
        track_list=( $_track_list ) # user-specified tracks
    fi

    # to display progression
    t=0
    t_l=${#track_list[@]}

    # main grab loop
    for track in ${track_list[@]}
    do
        ((t++))
        # sed hack from Vincent "gnuvince" Foley
        beautiful_track=$(echo $track \
        | sed 's/\([0-9]*\)/000\1/g;s/[0-9]*\([0-9]\{3\}\)/\1/g')

        read -p "tracks $beautiful_track ($t/$t_l) title: " this_track_title 
        this_track_name="$artist -- $album - $beautiful_track - $this_track_title"

        if cdparanoia --never-skip=2 $track -w "$this_track_name.wav"
        then
            # grab successful!

            flac --best \
                "$this_track_name.wav" \
                --tag=artist="$artist" \
                --tag=album="$album" \
                --tag=track="$beautiful_track" \
                --tag=title="$beautiful_track $this_track_title" \
                --tag=year="$year"
        else
            echo An error occurred while grabbing $track
        fi
    done

    read -p "cleanup wave files? [y/N] " cleanup
    if [ "$cleanup" == "y" ]
    then
        rm -v *wav
    fi
else
    echo error!
fi

