# 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;
if (defined $rev && defined $oldrev && $rev ne $oldrev) {
# Merge their changes into the file that we've
# changed.
- if (system("tla", "update", "-d",
- "$config{srcdir}/$file") != 0) {
+ if (quiet_system("tla", "update", "-d",
+ "$config{srcdir}") != 0) {
warn("tla update failed\n");
}
}
"-L".possibly_foolish_untaint($message),
'-d', $config{srcdir}) != 0) {
my $conflict=readfile("$config{srcdir}/$file");
- if (system("tla", "undo", "--quiet", "-d", "$config{srcdir}") != 0) {
+ if (system("tla", "undo", "-n", "--quiet", "-d", "$config{srcdir}") != 0) {
warn("tla undo failed\n");
}
return $conflict;
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);
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$/} split(/ /,
- "$newfiles $modfiles");
+ my @paths = grep { !/^(.*\/)?\.arch-ids\/.*\.id$/ }
+ split(/ /, "$newfiles $modfiles .arch-ids/fake.id");
my $sdate = $head->get("Standard-date");
my $when = time - str2time($sdate, 'UTC');
my @message;
push @message, { line => escapeHTML($summ) };
- $user = escapeHTML($user);
my @pages;
sub rcs_notify () { #{{{
# FIXME: Not set
- if (! exists $ENV{REV}) {
- error("REV is not set, not running from tla post-commit hook, cannot send notifications");
+ if (! exists $ENV{ARCH_VERSION}) {
+ error("ARCH_VERSION is not set, not running from tla post-commit hook, cannot send notifications");
}
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);
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/) {
$user=defined $2 ? "$2" : "$3";
);
eval q{use Mail::Sendmail};
+ error($@) if $@;
foreach my $email (@email_recipients) {
sendmail(
To => $email,
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);