X-Git-Url: https://diplodocus.org/git/flac-archive/blobdiff_plain/c069d00b1502aa08be2bdf0a197ab1110ba350d5..a70f5a4b57e63a823faec313387d85b683bd6af0:/fa-rip diff --git a/fa-rip b/fa-rip index 1a9bc2a..916c050 100755 --- a/fa-rip +++ b/fa-rip @@ -9,7 +9,7 @@ B - rip a CD for B =head1 SYNOPSIS -B [B<-d> I] [B<-t> I] +B [B<-d> I] [B<-p> I [B<-t> I] =cut @@ -20,6 +20,7 @@ use Env qw( CDDEV ); +use Fcntl qw(O_CREAT O_WRONLY); use File::Temp; use Getopt::Long qw(:config gnu_getopt no_ignore_case); use POSIX ':sys_wait_h'; @@ -136,13 +137,26 @@ sub rip { die; } +sub make_post_processor { + my $command = shift; + + defined($command) or return; + + sysopen(F, 'post-processor', O_CREAT | O_WRONLY, 0555) + or die("sysopen(post-processor, O_CREAT | O_WRONLY, 0555): $!"); + print(F $command, ' "$@"', "\n"); + close(F) or die("close(post-processor, O_CREAT | O_WRONLY, 0555): $!"); +} + MAIN: { + my $post_processor; my $trackcount; my $help; my $tempdir; GetOptions( 'device|d=s' => \$CDDEV, + 'post-processor|p=s', \$post_processor, 'tracks|t=i' => \$trackcount, 'help|h|?' => \$help, ) or pod2usage(); @@ -152,6 +166,7 @@ MAIN: { $tempdir = File::Temp::tempdir('flac-archive.XXXXXXXXXX'); chdir($tempdir) or die("chdir($tempdir): $!"); + make_post_processor($post_processor); $trackcount = mkcue($CDDEV, $trackcount); tags($CDDEV, $trackcount); rip($CDDEV, $trackcount); @@ -183,6 +198,12 @@ have to fill out the candidate-tags-0 template. Use I as the CD-ROM device, instead of the default "/dev/cdrom" or the environment variable CDDEV. +=item B<-p> [B<--post-processor>] I + +Create a "post-processor" file in the temporary directory containing +the line 'I "$@"'. See B's man page for +information about this hook. + =item B<-t> [B<--tracks>] I Archive only the first I tracks. This is handy for