about summary refs log tree commit diff
path: root/lib/jitterbug
diff options
context:
space:
mode:
authorJonathan "Duke" Leto <jonathan@leto.net>2011-01-12 15:56:31 -0800
committerJonathan "Duke" Leto <jonathan@leto.net>2011-01-12 15:56:31 -0800
commit94b70f3c91af81008a450d15b382c93705da2ce5 (patch)
tree4755022e5c389f35257891e2852ce488d33847f8 /lib/jitterbug
parentMore jitterbug::Emailer tests (diff)
downloadjitterbug-94b70f3c91af81008a450d15b382c93705da2ce5.tar.gz
Allow specification of a perl module to handle build failure emails
Diffstat (limited to 'lib/jitterbug')
-rw-r--r--lib/jitterbug/Builder.pm9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/jitterbug/Builder.pm b/lib/jitterbug/Builder.pm
index 4a8451f..297861f 100644
--- a/lib/jitterbug/Builder.pm
+++ b/lib/jitterbug/Builder.pm
@@ -146,7 +146,14 @@ sub run_task {
             $message  =~ s/'/\\'/g; $commiter =~ s/'/\\'/g; $output =~ s/'/\\'/g;
             my $failure_cmd = sprintf("%s '%s' %s '%s' '%s' %s %s", $on_failure, $commiter, $task->project->name, $message, $output, $sha, $on_failure_cc_email);
             debug("Running failure command: $failure_cmd");
-            `$failure_cmd`;
+
+            # does it look like a module name?
+            if ($on_failure =~ /::/) {
+                # we should do some error checking here
+                $on_failure->new($conf,$task,$output)->run;
+            } else {
+                system($failure_cmd);
+            }
         }
         $desc->{'build'}{'version'}{$name} = $result;
         close $fh;