#
# This file is part of Dist-Zilla-Plugin-Git
#
# This software is copyright (c) 2009 by Jerome Quelin.
#
# This is free software; you can redistribute it and/or modify it under
# the same terms as the Perl 5 programming language system itself.
#
use strict;
use warnings;
use Module::Build 0.3601;
use version 0.80 ();
my %module_build_args = (
'dist_abstract' => 'update your git repository after release',
'dist_author' => [
'Jerome Quelin'
],
'dist_name' => 'Dist-Zilla-Plugin-Git',
'dist_version' => '2.019',
'license' => 'perl',
'module_name' => 'Dist::Zilla::Plugin::Git',
'recursive_test_files' => 1,
'build_requires' => {
'Module::Build' => '0'
},
'configure_requires' => {
'Module::Build' => '0.3601',
'version' => '0.80',
'warnings' => '0'
},
'requires' => {
'Cwd' => '0',
'DateTime' => '0',
'Dist::Zilla' => '4',
'Dist::Zilla::Plugin::GatherDir' => '4.200016',
'Dist::Zilla::Role::AfterBuild' => '0',
'Dist::Zilla::Role::AfterMint' => '0',
'Dist::Zilla::Role::AfterRelease' => '0',
'Dist::Zilla::Role::BeforeRelease' => '0',
'Dist::Zilla::Role::FilePruner' => '0',
'Dist::Zilla::Role::GitConfig' => '0',
'Dist::Zilla::Role::PluginBundle' => '0',
'Dist::Zilla::Role::VersionProvider' => '0',
'File::Spec' => '0',
'File::Spec::Functions' => '0',
'File::Temp' => '0',
'File::chdir' => '0',
'Git::Wrapper' => '0.021',
'IPC::Open3' => '0',
'IPC::System::Simple' => '0',
'List::AllUtils' => '0',
'List::Util' => '0',
'Module::Runtime' => '0',
'Moose' => '0',
'Moose::Autobox' => '0',
'Moose::Role' => '0',
'Moose::Util::TypeConstraints' => '0',
'MooseX::AttributeShortcuts' => '0',
'MooseX::Has::Sugar' => '0',
'MooseX::Types::Moose' => '0',
'MooseX::Types::Path::Class' => '0',
'Path::Class' => '0.22',
'Path::Class::Dir' => '0',
'String::Formatter' => '0',
'Try::Tiny' => '0',
'Version::Next' => '0',
'constant' => '0',
'namespace::autoclean' => '0.09',
'perl' => '5.010',
'strict' => '0',
'version' => '0.80',
'warnings' => '0'
},
'test_requires' => {
'Devel::SimpleTrace' => '0',
'Dist::Zilla::File::InMemory' => '0',
'Dist::Zilla::Plugin::Config::Git' => '0',
'Dist::Zilla::Role::Releaser' => '0',
'Dist::Zilla::Tester' => '0',
'Encode' => '0',
'Exporter' => '0',
'File::Copy' => '0',
'File::Copy::Recursive' => '0',
'File::Path' => '2.07',
'File::Spec' => '0',
'File::Which' => '0',
'File::pushd' => '0',
'IO::Handle' => '0',
'IPC::Open3' => '0',
'Log::Dispatchouli' => '0',
'Test::DZil' => '0',
'Test::Fatal' => '0.006',
'Test::More' => '0.88',
'lib' => '0',
'utf8' => '0'
},
get_options => { 'force-install' => undef },
);
unless ( eval { Module::Build->VERSION(0.4004) } ) {
my $tr = delete $module_build_args{test_requires};
my $br = $module_build_args{build_requires};
for my $mod ( keys %$tr ) {
if ( exists $br->{$mod} ) {
$br->{$mod} = $tr->{$mod} if $tr->{$mod} > $br->{$mod};
}
else {
$br->{$mod} = $tr->{$mod};
}
}
}
my $build = Module::Build->new(%module_build_args);
# Git 1.5.4 introduced the --exclude-standard option to git ls-files,
# which Git::Check needs to work properly.
my $need_version = version->parse('1.5.4');
eval {
my $git_version = `git --version` or die "Unable to execute git\n";
$git_version =~ /git \s+ version \s* ( \d+ (?: \.\d+ )+ )( [-.]rc\d+)?/x
or die "Unable to determine git version\n";
my $rc = $2 || '';
$git_version = version->parse("$1");
die "git $need_version or later required, you have $git_version$rc\n"
if $git_version < $need_version or $git_version == $need_version and $rc;
1;
} or do {
print $@;
if ($build->args('force-install')) {
print "--force-install specified, attempting to install anyway.\n";
} else {
print <<"END MESSAGE";
\nDist::Zilla::Plugin::Git requires git $need_version or later in your PATH,
and it wasn't found. If you want to install anyway, run
$^X Build.PL --force-install
END MESSAGE
exit 0; # Indicate missing non-Perl prerequisite
} # end else not --force-install
}; # end do when Git prerequisite is not met
$build->create_build_script;