#!/usr/bin/perl

#
# fixup the INSTALL and README files
#

use strict;
use warnings;
use Text::Wrap;
use Pod::Select;

my @mods;
my $copy;
my $desc;
my @build;

undef $/;

#---------- get build/test modules

open PL, "< Makefile.PL" or die "open: $!";
$_ = <PL>;
close PL;

s/^.*__BUILD__\s*(.*?)}.*$/$1/s;
s/[ \t'=>.,0123456789]+//gs;
@build = split /\n/, $_;

#---------- get runtime modules

open PL, "< Makefile.PL" or die "open: $!";
$_ = <PL>;
close PL;

s/^.*__MODULES__\s*(.*?)}.*$/$1/s;
s/[ \t'=>.,0123456789]+//gs;
@mods = split /\n/, $_;

#---------- snarf stuff from pod

open PM, "< $ENV{VERSION_FROM}" or die "open: $!";
$copy = <PM>;
close PM;
$desc = $copy;

$copy =~ s/^.*COPYRIGHT AND LICENSE\s*(.*?)\s*\n=cut.*$/$1/s;
$desc =~ s/^.*?DESCRIPTION\s*(.*?)\s*\n=head.*$/$1/s;

# remove the pod tinsel
$desc =~ s/B<(.+?)>/$1/g;
$desc =~ s/C<< (.+?) >>/$1/g;

$Text::Wrap::columns = 76;
$copy = Text::Wrap::fill("    ","    ",$copy);
$desc = Text::Wrap::fill("    ","    ",$desc);

#---------- fixup INSTALL

open IN, "< txt/INSTALL.in" or die "open: $!";
$_ = <IN>;
close IN;

s/__MODULE__/$ENV{MODULE_NAME}/s;
s/__COPYRIGHT_AND_LICENSE__/$copy/s;
s/__BUILD__/join "\n", map { "        $_" } @build/em;
s/__MODULES__/join "\n", map { "        $_" } @mods/em;

open OUT, "> INSTALL" or die "open: $!";
print OUT $_;

#---------- fixup README

open IN, "< txt/README.in" or die "open: $!";
$_ = <IN>;
close IN;

s/__VERSION__/$ENV{MODULE_VERSION}/s;
s/__DESCRIPTION__/$desc/s;
s/__MODULE__/$ENV{MODULE_NAME}/s;
s/__COPYRIGHT_AND_LICENSE__/$copy/s;
s/__BUILD__/join "\n", map { "        $_" } @build/em;
s/__MODULES__/join "\n", map { "        $_" } @mods/em;

open OUT, "> README" or die "open: $!";
print OUT $_;

