From: epg <> Date: Sat, 30 Oct 2004 17:46:27 +0000 (+0000) Subject: Copy run_or_die from fa-rip and use that to run flac | lame. X-Git-Url: https://diplodocus.org/git/flac-archive/commitdiff_plain/70dbeaf6b456442a8d9037774b572632f5baa55d?ds=inline;hp=c069d00b1502aa08be2bdf0a197ab1110ba350d5 Copy run_or_die from fa-rip and use that to run flac | lame. --- diff --git a/flac2mp3 b/flac2mp3 index 3bdfa71..8c4e746 100755 --- a/flac2mp3 +++ b/flac2mp3 @@ -22,8 +22,28 @@ and DATE tags. use strict; use warnings; +use POSIX ':sys_wait_h'; use Pod::Usage; +sub run_or_die { + my $command = shift; + my $status; + + $status = system($command); + + if (WIFEXITED($status)) { + if (($status = WEXITSTATUS($status)) != 0) { + die("$command exited with status $status"); + } + } elsif (WIFSIGNALED($status)) { + die("$command killed with signal ", WTERMSIG($status)); + } elsif (WIFSTOPPED($status)) { + die("$command stopped with signal ", WSTOPSIG($status)); + } else { + die("Major horkage on system($command): \$? = $? \$! = $!"); + } +} + sub tformat { return sprintf('%02d:%02d.%02d', @_); } @@ -116,8 +136,9 @@ sub flac2mp3 { $outfile =~ s/\//_/g; $until_arg ||= ''; - # XXX - system("flac -cd $skip_arg $until_arg '$fn' | lame --preset standard --tt '$title' --ta '$artist' --tl '$album' --ty '$date' --tn $track - '$outfile'"); + run_or_die(join(' ', "flac -cd $skip_arg $until_arg '$fn'", + " | lame --preset standard --tt '$title' --ta '$artist'", + " --tl '$album' --ty '$date' --tn $track - '$outfile'")); } MAIN: {