The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Module::Install::Bundle::Platypus;
use strict;
use warnings;
use Data::Dumper;

our $VERSION = '0.00002';

use base qw(Module::Install::Base);

sub bundle_platypus {
    my ($self, %args) = @_;


    my $class = delete $args{class} || 'App::BundleDeps::Platypus';
    foreach my $required qw(script) {
        die "required parameter $required not specified in bundle_platypus"
            unless $args{$required};
    }
    $args{version} ||= $self->version() ||
        die "could not guess version for bundle_platypus";

    $args{extlib} ||= 'extlib';

    local $Data::Dumper::Indent = 0;
    local $Data::Dumper::Varname = "MIBP_VAR";
    local $Data::Dumper::Useqq = 1;
    my $args = Dumper(\%args);
    $args =~ s/^\s*\$MIBP_VAR\d+\s*=\s*{//;
    $args =~ s/}\s*;?\s*$//;

    $self->Makefile->postamble(<<EOM);
platypus: metafile
\t\$(FULLPERLRUN) -M$class -e '$class->new($args)->bundle_from_meta()'
EOM
}

1;

__END__

=head1 NAME

Module::Install::Bundle::Platypus - Bundle Your Mac App With Platypus

=head1 SYNOPSIS

    # in your Makefile.PL
    use inc::Module::Install;

    bundle_platypus
        extlib => 'extlib', # default,
        script => 'myapp.pl',
        app => $appname,
        author => $author,
        icon => $icon,
        identifier => $identifier,
        resources => \@resources,
        background => $boolean,
        version => $version, # uses dist version by default
    WriteAll;

    > make platypus

=head1 SEE ALSO

Module::Install::Bundle::LocalLib

=head1 AUTHOR

Daisuke Maki - C<< <daisuke@endeworks.jp> >>

Miyagawa Tatsuhiko - The juicy bits about using platypus

=head1 LICENSE

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html

=cut