X-Git-Url: https://diplodocus.org/git/flac-archive/blobdiff_plain/38d7bbebf8335dfc4735b7aa6a51f32e7543e1c9..96a473cc3e97bb0adcebedcc1014a21449fa390f:/fa-flacd diff --git a/fa-flacd b/fa-flacd index 74c35ab..c3413e5 100755 --- a/fa-flacd +++ b/fa-flacd @@ -12,7 +12,7 @@ B [B<-jv>] B -B ID TRACKCOUNT OFFSET [OFFSET ...] LENGTH +B I =cut @@ -30,7 +30,7 @@ my @jobs; my @finished; sub verbose { - $verbose and map({ print(STDERR $_) } @_); + $verbose and print(STDERR $_) for @_; } # Return the ARTIST, ALBUM, and DATE followed by a list of all the @@ -41,7 +41,6 @@ sub get_tags { my $value; my $artist; my $album; - my $date; my @tags; verbose("Opening tags file $fn\n"); @@ -58,14 +57,11 @@ sub get_tags { } elsif (/^ALBUM=/) { $album = $value; verbose("ALBUM $album from $fn\n"); - } elsif (/^DATE=/) { - $date = $value; - verbose("DATE $date from $fn\n"); } } close(TAGS) or die("close($fn): $!"); - return ($artist, $album, $date, @tags); + return ($artist, $album, @tags); } # Process the fa-rip output in the directory DIR. @@ -73,7 +69,6 @@ sub flac { my $dir = shift; my $artist; my $album; - my $date; my @tags; my $status; @@ -81,7 +76,7 @@ sub flac { rename("$dir/tags", "$dir/using-tags") or die("rename($dir/tags, $dir/using-tags): $!"); - ($artist, $album, $date, @tags) = get_tags("$dir/using-tags"); + ($artist, $album, @tags) = get_tags("$dir/using-tags"); verbose("mkdir($artist)\n"); -d $artist or mkdir($artist) or die("mkdir($artist): $!"); @@ -122,7 +117,7 @@ sub flac { sub reaper { my $pid; - while (($pid = waitpid(0, WNOHANG)) > 0) { + while (($pid = waitpid(-1, WNOHANG)) > 0) { push(@finished, [$pid, $?]); } @@ -201,7 +196,7 @@ MAIN: { $opts{'j'} = 4; $opts{'v'} = 0; if (not getopts('j:v', \%opts)) { - print("usage: flacd [-jN -v]\n"); + print(STDERR "usage: flacd [-jN -v]\n"); exit(2); } @@ -251,12 +246,11 @@ artist directory (and named by album) and the ID directory is removed. =head2 FA-RIP -B uses C to retrieve the disc ID and track -information. It creates a directory named by ID for storage of its -intermediate files. It passes the C output as -command-line arguments to B in the background. It then uses -C to create the "cue" file in the background. Finally, it -execs C to rip the CD to the "wav" file. +B uses C to create a directory for storage of its +intermediate files. It uses C to create the "cue" file and +then passes the number of tracks (from the "cue" file) as command-line +arguments to B. Finally, it execs C to rip +the CD to the "wav" file. In order for this CD to be processed by B, the user must create a "tags" file. This is usually done by renaming one of the @@ -264,26 +258,19 @@ candidate-tags files and deleting the others. =head2 FA-TAGS -B uses C (from the B package) to -populate candidate-tags files. These are numbered in the order of -entries read from CDDB, e.g. candidate-tags-1, candidate-tags-2, etc. -B also creates candidate-tags-0, which has the correct fields -for this CD (including correct number of TITLE= lines), but with all -fields blank. +B uses C to populate candidate-tags +files. These are numbered in the order of entries read from +MusicBrainz, e.g. candidate-tags-1, candidate-tags-2, etc. B +also creates candidate-tags-0, which has the correct fields for this +CD (including correct number of TITLE= lines), but with all fields +blank. -B expects the output of C as command-line -arguments. That is, the disc ID, number of tracks, list of track -offsets, and total length of the CD in seconds. +B requires the number of tracks as its sole argument. =head1 ENVIRONMENT =over 4 -=item CDDBURL - -B uses this to retrieve candidate Vorbis tags. Defaults to -"http://freedb.freedb.org/~cddb/cddb.cgi". - =item CDDEV B uses this to rip audio and save the cuesheet for a CD. It @@ -294,17 +281,10 @@ Linux, and NetBSD by default. =head1 AUTHORS -Written by Eric Gillespie . B contains -code from B, which bears the following notice: - -# Copyright (c) 1998-2001 Robert Woodcock -# Copyright (c) 2003-2004 Jesus Climent -# This code is hereby licensed for public consumption under either the -# GNU GPL v2 or greater, or Larry Wall's Artistic license - your choice. +Written by Eric Gillespie . -B is hereby licensed for public consumption under either -the GNU GPL v2 or greater, or Larry Wall's Artistic license - your -choice. +flac-archive is free software; you may redistribute it and/or modify +it under the same terms as Perl itself. =cut