]> diplodocus.org Git - flac-archive/blobdiff - fa-flacd
(flac2mp3): Put the track number in the filename.
[flac-archive] / fa-flacd
index 72c8923336dd7289921c08fa226ef6527cbef01c..37e07726c1326fe2bf99d3d7b032f5ae00369499 100755 (executable)
--- a/fa-flacd
+++ b/fa-flacd
@@ -30,7 +30,7 @@ my @jobs;
 my @finished;
 
 sub verbose {
 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
 }
 
 # 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 $value;
     my $artist;
     my $album;
-    my $date;
     my @tags;
 
     verbose("Opening tags file $fn\n");
     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 (/^ALBUM=/) {
             $album = $value;
             verbose("ALBUM $album from $fn\n");
-        } elsif (/^DATE=/) {
-            $date = $value;
-            verbose("DATE $date from $fn\n");
         }
     }
         }
     }
-    close(TAGS);
+    close(TAGS) or die("close($fn): $!");
 
 
-    return ($artist, $album, $date, @tags);
+    return ($artist, $album, @tags);
 }
 
 # Process the fa-rip output in the directory DIR.
 }
 
 # Process the fa-rip output in the directory DIR.
@@ -73,7 +69,6 @@ sub flac {
     my $dir = shift;
     my $artist;
     my $album;
     my $dir = shift;
     my $artist;
     my $album;
-    my $date;
     my @tags;
     my $status;
 
     my @tags;
     my $status;
 
@@ -81,7 +76,7 @@ sub flac {
     rename("$dir/tags", "$dir/using-tags")
       or die("rename($dir/tags, $dir/using-tags): $!");
 
     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): $!");
 
     verbose("mkdir($artist)\n");
     -d $artist or mkdir($artist) or die("mkdir($artist): $!");
@@ -115,6 +110,8 @@ sub flac {
 
     rename("$artist/$album.flac-tmp", "$artist/$album.flac")
       or die("rename($artist/$album.flac-tmp, $artist/$album.flac): $!");
 
     rename("$artist/$album.flac-tmp", "$artist/$album.flac")
       or die("rename($artist/$album.flac-tmp, $artist/$album.flac): $!");
+
+    return 0;
 }
 
 sub reaper {
 }
 
 sub reaper {
@@ -132,13 +129,12 @@ sub newjob {
     my $pid;
 
     $pid = fork();
     my $pid;
 
     $pid = fork();
-    if ($pid == -1) {
+    if (not defined($pid)) {
         die("fork: $!");
     } elsif ($pid == 0) {
         $SIG{CHLD} = 'IGNORE';
         open(STDERR, ">$dir/log") or die("open(STDERR, >$dir/log): $!");
         die("fork: $!");
     } elsif ($pid == 0) {
         $SIG{CHLD} = 'IGNORE';
         open(STDERR, ">$dir/log") or die("open(STDERR, >$dir/log): $!");
-        flac($dir);
-        exit(0);
+        exit(flac($dir));
     }
 
     verbose("new job $pid for $dir\n");
     }
 
     verbose("new job $pid for $dir\n");
@@ -152,7 +148,7 @@ sub deljob {
     my $status;
 
     $pid = $finished[$i][0];
     my $status;
 
     $pid = $finished[$i][0];
-    $status = WEXITSTATUS($finished[$i][1]);
+    $status = $finished[$i][1];
 
     verbose("$pid finished (");
     if (WIFEXITED($status)) {
 
     verbose("$pid finished (");
     if (WIFEXITED($status)) {
@@ -250,12 +246,12 @@ artist directory (and named by album) and the ID directory is removed.
 
 =head2 FA-RIP
 
 
 =head2 FA-RIP
 
-B<fa-rip> uses L<cd-discid(1)> to retrieve the disc ID and track
+B<fa-rip> uses C<cd-discid(1)> to retrieve the disc ID and track
 information.  It creates a directory named by ID for storage of its
 information.  It creates a directory named by ID for storage of its
-intermediate files.  It passes the L<cd-discid(1)> output as
+intermediate files.  It passes the C<cd-discid(1)> output as
 command-line arguments to B<fa-tags> in the background.  It then uses
 command-line arguments to B<fa-tags> in the background.  It then uses
-L<cdrdao(1)> to create the "cue" file in the background.  Finally, it
-execs ><cdparanoia(1)> to rip the CD to the "wav" file.
+C<cdrdao(1)> to create the "cue" file in the background.  Finally, it
+execs C<cdparanoia(1)> to rip the CD to the "wav" file.
 
 In order for this CD to be processed by B<fa-flacd>, the user must
 create a "tags" file.  This is usually done by renaming one of the
 
 In order for this CD to be processed by B<fa-flacd>, the user must
 create a "tags" file.  This is usually done by renaming one of the
@@ -263,14 +259,14 @@ candidate-tags files and deleting the others.
 
 =head2 FA-TAGS
 
 
 =head2 FA-TAGS
 
-B<fa-tags> uses L<cddb-tool(1)> (from the B<abcde> package) to
+B<fa-tags> uses C<cddb-tool(1)> (from the B<abcde> 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<fa-tags> also creates candidate-tags-0, which has the correct fields
 for this CD (including correct number of TITLE= lines), but with all
 fields blank.
 
 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<fa-tags> 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<fa-tags> expects the output of L<cd-discid(1)> as command-line
+B<fa-tags> expects the output of C<cd-discid(1)> as command-line
 arguments.  That is, the disc ID, number of tracks, list of track
 offsets, and total length of the CD in seconds.
 
 arguments.  That is, the disc ID, number of tracks, list of track
 offsets, and total length of the CD in seconds.