diff options
author | Jonathan "Duke" Leto <jonathan@leto.net> | 2011-01-11 16:39:51 -0500 |
---|---|---|
committer | Jonathan "Duke" Leto <jonathan@leto.net> | 2011-01-11 16:39:51 -0500 |
commit | b3a31c9d5ac670a7e04602bb8e7e4e3018535e35 (patch) | |
tree | 85b08ee55182c26f35291d0ab758ec4570d9d367 /lib/jitterbug/Emailer.pm | |
parent | Make build failure email more useful by including TAP output (diff) | |
download | jitterbug-b3a31c9d5ac670a7e04602bb8e7e4e3018535e35.tar.gz |
Make failure email more customizable, start new jitterbug::Emailer in perl
Diffstat (limited to '')
-rw-r--r-- | lib/jitterbug/Emailer.pm | 43 |
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; |