App-scrape
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
Consult http://www.cpan.org/modules/INSTALL.html for further instruction.
Should you wish to install this module manually, the procedure is
perl Makefile.PL
make
make test
make install
INSTALL
pod_section($_[0], 'REPOSITORY'),
pod_section($_[0], 'SUPPORT'),
pod_section($_[0], 'BUG TRACKER'),
pod_section($_[0], 'AUTHOR'),
pod_section($_[0], 'LICENSE' ),
pod_section($_[0], 'COPYRIGHT' ),
;
update_file( 'README', $readme );
};
# README.mkdn is the documentation that will be shown as the main
# page of the repository on Github. Hence we recreate the POD here
# as Markdown
eval {
require Pod::Markdown;
my $parser = Pod::Markdown->new();
# Read POD from Module.pm and write to README
$parser->parse_from_file($_[0]);
my $readme_mkdn = <<STATUS . $parser->as_markdown;
[](https://github.com/Corion/App-scrape)
STATUS
update_file( 'README.mkdn', $readme_mkdn );
};
}
sub pod_section {
my( $filename, $section, $remove_heading ) = @_;
open my $fh, '<', $filename
or die "Couldn't read '$filename': $!";
my @section =
grep { /^=head1\s+$section/.../^=/ } <$fh>;
pop @section if $section[-1] =~ /^=/;
shift @section if $remove_heading;
# Trim the section
if( @section ) {
pop @section
while $section[-1] =~ /^\s*$/;
shift @section
while $section[0] =~ /^\s*$/;
};
@section = map { $_ =~ s!^=\w+\s+!!; $_ } @section;
return join "", @section;
}
sub update_file {
my( $filename, $new_content ) = @_;
my $content;
if( -f $filename ) {
open my $fh, '<', $filename
or die "Couldn't read '$filename': $!";
binmode $fh;
local $/;
$content = <$fh>;
};
if( $content ne $new_content ) {
if( open my $fh, '>', $filename ) {
binmode $fh;
print $fh $new_content;
} else {
warn "Couldn't (re)write '$filename': $!";
};
};
}
( run in 1.864 second using v1.01-cache-2.11-cpan-39bf76dae61 )