#!/usr/bin/perl -w
use strict;
use File::Temp qw(tempdir);
my $tla = $ENV{TLA} || '/usr/bin/tla';

foreach my $r (<STDIN>) {
	chomp $r;
	my ($url, $srev);
	open FD, "$tla cat-archive-log $r |" || die $!;
	while (<FD>) {
		chomp $_;
		if (/^URL:\s+(\S+)$/) {
			$url = $1;
			$url =~ s#theory5\.chem\.pitt\.edu/svn/mpd#svn.musicpd.org#g;
			$url =~ s#homer\.musicpd\.org/svn/mpd#svn.musicpd.org#g;
			$url =~ s#^http://#https://#;
		} elsif (/^Revision:\s+(\d+)$/) {
			$srev = $1;
		}
	}
	close FD or die $!;
	if (!$srev || !$url) {
		print STDERR "$r failed!\n";
	} else {
		my $tmp = tempdir("$ENV{PWD}/svn-arch-mirror-verify.$$.r$srev.XXXX", CLEANUP => 1);
		sys("tla get --link $r $tmp/a >/dev/null");
		sys("svn co $url -r $srev $tmp/b >/dev/null");
		if (system("diff -ruNp -x {arch} -x .arch-ids -x .svn $tmp/a $tmp/b")) {
			print STDERR "diff $r $srev\n";
		}
	}
}

sub sys {
	#print "sys: ",join(' ',@_),"\n";
	unless (system(@_) == 0) {
		print STDERR "E: $!: '".join("' '",@_)."'\nPWD: ",`pwd`;
		die;
	}
}

# arch-tag: 2e0b723e-e792-467c-8b3c-bbfcbd1e8feb
