X-Git-Url: https://diplodocus.org/git/flac-archive/blobdiff_plain/e9aa850faa0516c3ec1b54bb5b437816d192b00c..102f28bd8e396fdeff773afb69c30649750c3b0a:/fa-rip diff --git a/fa-rip b/fa-rip index 5066c79..22140a5 100755 --- a/fa-rip +++ b/fa-rip @@ -120,6 +120,7 @@ sub tags_file { sub tags { my $device = shift; my $trackcount = shift; + my $no_mb = shift; my $mb; my @results; my $album; @@ -127,6 +128,10 @@ sub tags { my $various; my $seen_various; + tags_file('candidate-tags-0', $trackcount, 0); + + defined($no_mb) and $no_mb and return; + if (defined($device)) { $mb = new MusicBrainz::Client::Simple (device=>$device); } else { @@ -138,8 +143,6 @@ sub tags { die($mb->get_error); } - tags_file('candidate-tags-0', $trackcount, 0); - for $album (@results) { $i++; @@ -160,11 +163,17 @@ sub tags { sub rip { my $device = shift; my $trackcount = shift; + my $single_file = shift; + my @output; $device ||= '/dev/cdrom'; + if ($single_file) { + @output = ("1-$trackcount", 'wav'); + } else { + @output = ('-B'); + } - exec('cdparanoia', '-d', $device, "1-$trackcount", 'wav'); - # exec prints its own error message so just + exec('cdparanoia', '-d', $device, @output); die; } @@ -180,14 +189,18 @@ sub make_post_processor { } MAIN: { + my $no_mb; my $post_processor; + my $single_file; my $trackcount = 99; my $help; my $tempdir; GetOptions( 'device|d=s' => \$CDDEV, + 'no-musicbrainz|m' => \$no_mb, 'post-processor|p=s', \$post_processor, + 'single-file|s' => \$single_file, 'tracks|t=i' => \$trackcount, 'help|h|?' => \$help, ) or pod2usage(); @@ -199,8 +212,8 @@ MAIN: { make_post_processor($post_processor); $trackcount = mkcue($CDDEV, $trackcount); - tags($CDDEV, $trackcount); - rip($CDDEV, $trackcount); + tags($CDDEV, $trackcount, $no_mb); + rip($CDDEV, $trackcount, $single_file); } @@ -248,9 +261,8 @@ ignoring data tracks. =item CDDEV -B uses this to rip audio and save the cuesheet for a CD. It -makes some effort to check some common device names for FreeBSD, -Linux, and NetBSD by default. +B uses this to rip audio and save the cuesheet for a CD. +MusicBrainz::Client can usually figure this out automatically. =back