X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/42973f687ca3a312303330b0ac50ef618a13381c..702b8721d360ca132ff5c8f43d332757694b98da:/IkiWiki/Rcs/tla.pm diff --git a/IkiWiki/Rcs/tla.pm b/IkiWiki/Rcs/tla.pm index 503073d7c..00ee7e7a0 100644 --- a/IkiWiki/Rcs/tla.pm +++ b/IkiWiki/Rcs/tla.pm @@ -7,14 +7,13 @@ use POSIX qw(setlocale LC_CTYPE); package IkiWiki; -my $tla_webcommit=qr/^web commit (by (\w+)|from (\d+\.\d+\.\d+\.\d+)):?(.*)/; - sub quiet_system (@) { # See Debian bug #385939. open (SAVEOUT, ">&STDOUT"); close STDOUT; open (STDOUT, ">/dev/null"); my $ret=system(@_); + close STDOUT; open (STDOUT, ">&SAVEOUT"); close SAVEOUT; return $ret; @@ -88,7 +87,9 @@ sub rcs_recentchanges ($) { return unless -d "$config{srcdir}/{arch}"; eval q{use Date::Parse}; + error($@) if $@; eval q{use Mail::Header}; + error($@) if $@; my $logs = `tla logs -d $config{srcdir}`; my @changesets = reverse split(/\n/, $logs); @@ -104,6 +105,7 @@ sub rcs_recentchanges ($) { my $summ = $head->get("Summary"); my $newfiles = $head->get("New-files"); my $modfiles = $head->get("Modified-files"); + my $remfiles = $head->get("Removed-files"); my $user = $head->get("Creator"); my @paths = grep { !/^(.*\/)?\.arch-ids\/.*\.id$/ } @@ -113,7 +115,7 @@ sub rcs_recentchanges ($) { my $when = time - str2time($sdate, 'UTC'); my $committype = "web"; - if (defined $summ && $summ =~ /$tla_webcommit/) { + if (defined $summ && $summ =~ /$config{web_commit_regexp}/) { $user = defined $2 ? "$2" : "$3"; $summ = $4; } @@ -157,6 +159,7 @@ sub rcs_notify () { #{{{ my $rev=int(possibly_foolish_untaint($ENV{REV})); eval q{use Mail::Header}; + error($@) if $@; open(LOG, $ENV{"ARCH_LOG"}); my $head = Mail::Header->new(\*LOG); close(LOG); @@ -166,11 +169,12 @@ sub rcs_notify () { #{{{ my $newfiles = $head->get("New-files"); my $modfiles = $head->get("Modified-files"); + my $remfiles = $head->get("Removed-files"); - my @changed_pages = grep {!/(^.*\/)?\.arch-ids\/.*\.id$/} split(/ /, - "$newfiles $modfiles"); + my @changed_pages = grep { !/(^.*\/)?\.arch-ids\/.*\.id$/ } + split(/ /, "$newfiles $modfiles $remfiles .arch-ids/fake.id"); - if ($message =~ /$tla_webcommit/) { + if ($message =~ /$config{web_commit_regexp}/) { $user=defined $2 ? "$2" : "$3"; $message=$4; } @@ -211,6 +215,7 @@ sub rcs_notify () { #{{{ ); eval q{use Mail::Sendmail}; + error($@) if $@; foreach my $email (@email_recipients) { sendmail( To => $email, @@ -225,7 +230,9 @@ sub rcs_notify () { #{{{ sub rcs_getctime ($) { #{{{ my $file=shift; eval q{use Date::Parse}; + error($@) if $@; eval q{use Mail::Header}; + error($@) if $@; my $logs = `tla logs -d $config{srcdir}`; my @changesets = reverse split(/\n/, $logs);