summaryrefslogtreecommitdiff
path: root/parse-trac
diff options
context:
space:
mode:
Diffstat (limited to 'parse-trac')
-rwxr-xr-xparse-trac39
1 files changed, 29 insertions, 10 deletions
diff --git a/parse-trac b/parse-trac
index a79399e..c20d061 100755
--- a/parse-trac
+++ b/parse-trac
@@ -96,19 +96,29 @@ my $body = join '', @mail;
$body = decode_base64($body) if ($is_base64);
@mail = split(/\r?\n/, $body);
+my $batch_job;
+my $reporter;
+my $comment;
my @summary;
+
while (defined($line = shift @mail)) {
- last if $line =~ /^-----------------/;
chomp $line;
+ last if $line =~ /^-----------------/;
+ last if (defined $batch_job && $line eq "");
+
+ if ($line =~ /Batch modification to (.*) by (.*?):?$/) {
+ $batch_job = $1;
+ $reporter = $2;
+ };
push @summary, $line;
};
my $summary = join ' ', @summary;
-my $reporter;
while (defined($line = shift @mail)) {
if ($line =~ /Reporter:\s*(.*?)\s*\|/i and not defined $reporter) {
$reporter = $1;
};
+ last if ($line =~ /Comment:/i and defined $batch_job);
last if $line =~ /^-----------------/
}
my @body;
@@ -117,11 +127,25 @@ while (defined($line = shift @mail)) {
push @body, $line;
}
+my $notice;
+print $comment;
+
die ("$PROGRAM_NAME - $project: No reporter found.\n") unless defined $reporter;
die ("$PROGRAM_NAME - $project: No tracproject found.\n") unless defined $tracproject;
-die ("$PROGRAM_NAME - $project: No url found.\n") unless defined $url;
-die ("$PROGRAM_NAME - $project: No ticketid found.\n") unless defined $ticketid;
-die ("$PROGRAM_NAME - $project: No summary found.\n") unless defined $summary;
+if (defined $batch_job) {
+ $notice = "Batch updated by $reporter to $batch_job";
+ $notice .= (length($summary) > 0 ? ": ".$summary : '.');
+} else {
+ die ("$PROGRAM_NAME - $project: No url found.\n") unless defined $url;
+ die ("$PROGRAM_NAME - $project: No ticketid found.\n") unless defined $ticketid;
+ die ("$PROGRAM_NAME - $project: No summary found.\n") unless defined $summary;
+
+ $notice = $is_a_reply ?
+ "[$tracproject] #$ticketid was updated" :
+ "[$tracproject] #$ticketid filed by $reporter";
+
+ $notice .= ": $summary - $url";
+}
my $MAXBODYLINES = 5;
if (scalar @body > $MAXBODYLINES+1) { # if it's one more let it through, [...] takes a line too
@@ -131,11 +155,6 @@ if (scalar @body > $MAXBODYLINES+1) { # if it's one more let it through, [.
$body = join "\n", @body;
};
-my $notice = $is_a_reply ?
- "[$tracproject] #$ticketid was updated" :
- "[$tracproject] #$ticketid filed by $reporter";
-
-$notice .= ": $summary - $url";
#open(MAIL, "|cat") or
open(MAIL, "|$SENDMAIL -t -oi -f $ENVELOPE_FROM") or