#!/usr/bin/env perl

sub usage()
{
    print STDERR "show-obsolete-patches - list issues of obsolete patches
Usage: show-obsolete-patches src680-mXYZ\n";

    exit 1;
}

$mws = "src680";
$milestone = shift @ARGV;
if ( !defined( $milestone ) ) {
    print "Milestone not specified...\n\n";
    usage();
}
elsif ( $milestone =~ /($mws-m|m|)([0-9]+)/ ) {
    $milestone = $2;
}
else {
    usage();
}

open APPLY, "patches/src680/apply" || die "Cannot open patches/src680/apply\n";

my $section = "";
my $result = "";
while ( <APPLY> ) {
    if ( /^\s*#.*/ ) {
        # comment
    }
    elsif ( /^\s*\[\s*(.*)\]/ ) {
        $section = $1;
    }
    elsif ( /^\s*([^\#,\s]+.diff)\s*,?\s*(.*)?$/ )
    {
        my $patch = $1;
        my $tmp = $2;
        my $issue = "";
        if ( $tmp =~ /i#([0-9]*)/ ) {
            $issue = $1;
        }

        if ( ( ( $section =~ /<=\s*$mws-m([0-9]*)/ ) && ( $1 <  $milestone ) ) ||
             ( ( $section =~ /<\s*$mws-m([0-9]*)/ )  && ( $1 <= $milestone ) ) ||
             ( ( $section =~ /==\s*$mws-m([0-9]*)/ ) && ( $1 <  $milestone ) ) )
        {
            if ( $issue ne "" ) {
                $result .= "+" unless $result eq "";
                $result .= $issue;
            }
            else {
                print "Obsolete patch without IZ number: $patch\n";
            }
        }
    }
}

close APPLY;

if ( $result ne "" ) {
    print "http://www.openoffice.org/issues/buglist.cgi?issue_id=$result\n";
}
else {
    print "No obsolete patches for $mws-m$milestone.\n";
}
