#! /usr/bin/perl -w while(<>) { if (m/^(\S+)\s+(\S+)\s+(\S+)\s+(.+)$/) { my $tarball = $1; my $cvsroot = $2; my $project = $3; my $tagopt = $4; $tarball =~ m/^\w+-(\S+)\.tar.gz$/; my $tag = $1; system("cvs -Q -d $cvsroot co -d cvsout $tagopt $project") == 0 || die "cvs failed: $?"; system("tar xfz ../$tarball") == 0 || die "tar failed: $?"; system("find cvsout post* -name CVS -type d | xargs rm -rf") == 0 || die "find failed: $?"; # hacks to make certain old versions diff successfully if ((-d "postgresql-v$tag/src" and not -d "postgresql-v$tag/src/interfaces") or -d "postgres95/src") { print "moving src/interfaces for $tag\n"; system("mv cvsout/src/interfaces/* cvsout/src") == 0 || die "mv failed: $?"; system("rmdir cvsout/src/interfaces") == 0 || die "rmdir failed: $?"; } if (-d "postgresql-v$tag/src/pgsql_perl5") { print "moving perl5 for $tag\n"; system("mv cvsout/src/perl5 cvsout/src/pgsql_perl5") == 0 || die "mv failed: $?"; } if (-f "postgresql-$tag/src/backend/commands/version.c" or -f "postgresql-v$tag/src/backend/commands/version.c" or -f "postgres95/src/backend/commands/version.c") { print "moving version.c for $tag\n"; system("mv cvsout/src/backend/commands/_deadcode/version.c cvsout/src/backend/commands") == 0 || die "mv failed: $?"; system("rmdir cvsout/src/backend/commands/_deadcode 2>/dev/null"); } if (-d "postgresql-$tag/src/test/locale/ISO8859-7") { print "moving ISO8859-7 for $tag\n"; system("mv cvsout/src/test/locale/gr_GR.ISO8859-7 cvsout/src/test/locale/ISO8859-7") == 0 || die "mv failed: $?"; } system("diff -cr cvsout post* >diffs/diff.$tag"); system("diff -cr -I '\$PostgreSQL' -I '\$Header' cvsout post* >diffs/diff.$tag.na"); system("rm -rf cvsout post*") == 0 || die "rm failed: $?"; } }