1#line 1
2package Module::Install::ReadmeMarkdownFromPod;
3
4use 5.006;
5use strict;
6use warnings;
7
8our $VERSION = '0.03';
9
10use base qw(Module::Install::Base);
11
12sub readme_markdown_from {
13    my ($self, $file, $clean) = @_;
14    return unless $Module::Install::AUTHOR;
15    die "syntax: readme_markdown_from $file, [$clean]\n" unless $file;
16
17    # require, not use because otherwise Makefile.PL will complain if
18    # non-authors don't have Pod::Markdown, which would be bad.
19    require Pod::Markdown;
20    $self->admin->copy_package('Pod::Markdown', $INC{'Pod/Markdown.pm'});
21
22    my $parser = Pod::Markdown->new;
23    $parser->parse_from_file($file);
24    open my $fh, '>', 'README.mkdn' or die "$!\n";
25    print $fh $parser->as_markdown;
26    close $fh or die "$!\n";
27
28    return 1 unless $clean;
29    $self->postamble(<<"END");
30distclean :: license_clean
31
32license_clean:
33\t\$(RM_F) README.mkdn
34END
35    1;
36}
37
38sub readme_markdown_from_pod {
39    my ($self, $clean) = @_;
40    return unless $Module::Install::AUTHOR;
41    unless ($self->Meta->{values}{all_from}) {
42        die "set 'all_from' or use 'readme_markdown_from'\n";
43    }
44    $self->readme_markdown_from($self->Meta->{values}{all_from}, $clean);
45}
46
47sub readme_from_pod {
48    my ($self, $clean) = @_;
49    return unless $Module::Install::AUTHOR;
50    unless ($self->Meta->{values}{all_from}) {
51        die "set 'all_from' or use 'readme_from'\n";
52    }
53    $self->readme_from($self->Meta->{values}{all_from}, $clean);
54}
55
56sub reference_module {
57    my ($self, $file) = @_;
58    die "syntax: reference_module $file\n" unless $file;
59    $self->all_from($file);
60    $self->readme_from($file);
61    $self->readme_markdown_from($file);
62}
63
641;
65
66__END__
67
68#line 188
69