]> diplodocus.org Git - flac-archive/blobdiff - fa-flacd
(newjob): Perl's fork returns undef for failure, not -1.
[flac-archive] / fa-flacd
index 72c8923336dd7289921c08fa226ef6527cbef01c..74c35abb963b17fcdc75c0b7b69838e6d896a453 100755 (executable)
--- a/fa-flacd
+++ b/fa-flacd
@@ -63,7 +63,7 @@ sub get_tags {
             verbose("DATE $date from $fn\n");
         }
     }
             verbose("DATE $date from $fn\n");
         }
     }
-    close(TAGS);
+    close(TAGS) or die("close($fn): $!");
 
     return ($artist, $album, $date, @tags);
 }
 
     return ($artist, $album, $date, @tags);
 }
@@ -115,6 +115,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 +134,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 +153,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 +251,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 +264,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.