#!/usr/bin/perl
#
# usage: dodiff old new
#  where old and new are directory siblings of this directory
#  and contain different versions of the same files

$rfcdiff = $ENV{'RFCDIFF'} || 'rfcdiff';
@drafts = ( 'p1-messaging',
            'p2-semantics',
            'p4-conditional',
            'p5-range',
            'p6-cache',
            'p7-auth' );

$oldv = shift;
$newv = shift;

if (!(defined($oldv) && -d "../$oldv")) {
    die "first argument must be the name of the old directory\n";
}
if (!(defined($newv) && -d "../$newv")) {
    die "second argument must be the name of the new directory\n";
}
if ($oldv eq $newv) {
    die "no differences: both arguments are the same directory\n";
}

if ($newv =~ /^\d\d$/) {  # second argument is a two-digit draft version
    $newf = "../$newv/draft-ietf-httpbis-";
    $newb = "-$newv\.txt";
}
else {
    $newf = "../$newv/";
    $newb = ".txt";
}

if ($oldv eq 'orig') {
    foreach $draft (@drafts) {
        system $rfcdiff, "../orig/rfc2616-symrefs.txt", "$newf$draft$newb";
    }
}
elsif ($oldv =~ /^\d\d$/) {
    $oldf = "../$oldv/draft-ietf-httpbis-";
    $oldb = "-$oldv\.txt";

    foreach $draft (@drafts) {
        system("$rfcdiff --stdout $oldf$draft$oldb $newf$draft$newb > draft-ietf-httpbis-$draft-$newv-from-$oldv.diff.html");
    }
}
else {
    $oldf = "../$oldv/";
    $oldb = '.txt';

    foreach $draft (@drafts) {
        system("$rfcdiff --stdout $oldf$draft$oldb $newf$draft$newb > $draft-$newv-from-$oldv.diff.html");
    }
}

exit 0;
