about summary refs log tree commit diff
path: root/lib/jitterbug/Emailer.pm
diff options
context:
space:
mode:
authorJonathan "Duke" Leto <jonathan@leto.net>2011-01-11 16:39:51 -0500
committerJonathan "Duke" Leto <jonathan@leto.net>2011-01-11 16:39:51 -0500
commitb3a31c9d5ac670a7e04602bb8e7e4e3018535e35 (patch)
tree85b08ee55182c26f35291d0ab758ec4570d9d367 /lib/jitterbug/Emailer.pm
parentMake build failure email more useful by including TAP output (diff)
downloadjitterbug-b3a31c9d5ac670a7e04602bb8e7e4e3018535e35.tar.gz
Make failure email more customizable, start new jitterbug::Emailer in perl
Diffstat (limited to 'lib/jitterbug/Emailer.pm')
-rw-r--r--lib/jitterbug/Emailer.pm43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/jitterbug/Emailer.pm b/lib/jitterbug/Emailer.pm
new file mode 100644
index 0000000..97ec640
--- /dev/null
+++ b/lib/jitterbug/Emailer.pm
@@ -0,0 +1,43 @@
+package jitterbug::Emailer;
+
+use strict;
+use warnings;
+use Email::Stuff;
+
+sub new {
+    my $self = bless {} => shift;
+    my ($conf,$task,$tap_output) = @_;
+    # smelly
+    $self->{'conf'} = $conf;
+    $self->{'task'} = $task;
+    $self->{'tap_output'} = $tap_output;
+
+    return $self;
+}
+
+sub run {
+    my $self = shift;
+    my $buildconf = $conf->{'jitterbug'}{'build_process'};
+    my $project   = $task->project->name;
+
+    my $sha1 = $task->commit->sha256;
+    my $body = <<BODY;
+$tap_output
+BODY
+
+    Email::Stuff->from($buildconf->{'on_failure_from_email')
+                ->to($buildconf->{'on_failure_to_email'})
+                ->cc($buildconf->{'on_failure_cc_email'})
+                ->text_body($body)
+                ->subject(
+                    $buildconf->{'on_failure_subject_prefix'} . "$project @ $sha1"
+                  )
+                # Should we attach a build log for convenience?
+                # ->attach(io('dead_bunbun_faked.gif')->all,
+                #    filename => 'dead_bunbun_proof.gif')
+                ->send;
+
+    return $self;
+}
+
+1;