X-Git-Url: https://diplodocus.org/git/flac-archive/blobdiff_plain/890a5921fe12b21fbc65d88a0e59080dc8cc9a5b..38d7bbebf8335dfc4735b7aa6a51f32e7543e1c9:/fa-flacd diff --git a/fa-flacd b/fa-flacd index 72c8923..74c35ab 100755 --- a/fa-flacd +++ b/fa-flacd @@ -63,7 +63,7 @@ sub get_tags { verbose("DATE $date from $fn\n"); } } - close(TAGS); + close(TAGS) or die("close($fn): $!"); 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): $!"); + + return 0; } sub reaper { @@ -132,13 +134,12 @@ sub newjob { 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): $!"); - flac($dir); - exit(0); + exit(flac($dir)); } verbose("new job $pid for $dir\n"); @@ -152,7 +153,7 @@ sub deljob { my $status; $pid = $finished[$i][0]; - $status = WEXITSTATUS($finished[$i][1]); + $status = $finished[$i][1]; 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 -B uses L to retrieve the disc ID and track +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 L output as +intermediate files. It passes the C output as command-line arguments to B in the background. It then uses -L to create the "cue" file in the background. Finally, it -execs > to rip the CD to the "wav" file. +C to create the "cue" file in the background. 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 @@ -263,14 +264,14 @@ candidate-tags files and deleting the others. =head2 FA-TAGS -B uses L (from the B package) to +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 expects the output of L as command-line +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.