diff --git a/handbrake-cluster-client.pl b/handbrake-cluster-client.pl index 544efe2..ff2187c 100755 --- a/handbrake-cluster-client.pl +++ b/handbrake-cluster-client.pl @@ -133,6 +133,8 @@ $taskset->wait; sub on_complete_handler { my $result_ref = shift or die; + return on_fail_handler() unless defined $$result_ref; + if ($options{report_email}) { my $email = MIME::Lite::TT::HTML->new( From => $options{report_email},, @@ -179,7 +181,6 @@ sub parse_config { foreach my $job (@{ $config->{jobs} }) { if ($job->{presets}) { foreach my $preset_name (@{ $job->{presets} }) { - print "Copying values for preset $preset_name into job\n"; foreach my $preset_key (keys %{$config->{presets}->{$preset_name}}) { $job->{$preset_key} = $config->{presets}->{$preset_name}->{$preset_key} unless $job->{$preset_key}; } diff --git a/handbrake-cluster-worker.pl b/handbrake-cluster-worker.pl index 29d5e6d..3dce69e 100755 --- a/handbrake-cluster-worker.pl +++ b/handbrake-cluster-worker.pl @@ -125,6 +125,16 @@ sub do_rip { while ($line = <$child_out>) { $log->debug($line); } + close($child_out); + + # If the rip process failed, report an error status here + waitpid($child_pid, 0); + my $child_exit_status = $? >> 8; + + if (!$child_exit_status) { + $log->warning("Ripping process returned error status: $child_exit_status"); + return undef; + } $log->notice("Finished rip to $rip_filename"); return $rip_filename;