#line 1
package Module::Install::PadrePlugin;

use strict;
use Module::Install::Base;

use vars qw{$VERSION @ISA};

BEGIN {
	$VERSION = '0.01';
	@ISA     = qw{Module::Install::Base};
}

#line 41

sub is_padre_plugin {
	my ($self) = @_;
	my $class = ref($self);
	my $inc_class = join( '::', @{ $self->_top }{qw(prefix name)} );

	my $version  = $self->version;
	my $distname = $self->name;
	$distname =~ s/^Padre-Plugin-//
		or die "This is not a Padre plugin The namespace doesn't start with Padre::Plugin::!";

	my $file = $distname;
	$file .= '.par';

	$self->postamble(<<"END_MAKEFILE");
# --- $class section:

$file: all test
\t\$(NOECHO) \$(PERL) "-M$inc_class" -e "make_padre_plugin(q($distname),q($file),q($version))"

plugin :: $file
\t\$(NOECHO) \$(NOOP)

installplugin :: $file
\t\$(NOECHO) \$(PERL) "-M$inc_class" -e "install_padre_plugin(q($file))"

END_MAKEFILE

}

#line 96

sub make_padre_plugin {
	my ( $self, $distname, $file, $version ) = @_;
	unlink $file if -f $file;

	unless ( eval { require PAR::Dist; PAR::Dist->VERSION >= 0.17 } ) {
		warn "Please install PAR::Dist 0.17 or above first.";
		return;
	}

	return PAR::Dist::blib_to_par(
		name    => $distname,
		version => $version,
		dist    => $file,
	);
}

sub install_padre_plugin {
	my ( $self, $file ) = @_;
	if ( not -f $file ) {
		warn "Cannot find plugin file '$file'.";
		return;
	}

	require Padre;
	my $plugin_dir = Padre::Config->default_plugin_dir;

	require File::Copy;
	return File::Copy::copy( $file, $plugin_dir );
}

1;

#line 143
