App-Requirement-Arch
view release on metacpan or search on metacpan
if($ENV{'App_Requirement_Arch_USE_GIT_VERSION_FOR_DIST'})
{
my $number_of_commits = `git log | grep -E 'commit [0-9a-f]{40}' | wc -l` ;
chomp $number_of_commits ;
if($number_of_commits)
{
#print "number of git revision: $number_of_commits.\n" ;
return("${version}.${number_of_commits}") ;
}
else
{
print "Couldn't get git revision, using version from '$file'!\n" ;
return($version) ;
}
}
else
{
return($version) ;
}
}
my $code = <<'EOC';
use strict ;
use warnings ;
sub GetVersionAndRevisionFrom
{
my ($file) = @_ ;
my $version_from = File::Spec->catfile( split '/', $file );
my $version = Module::Build->version_from_file($version_from);
if($ENV{'App_Requirement_Arch_USE_GIT_VERSION_FOR_DIST'})
{
my $number_of_commits = `git log | grep -E 'commit [0-9a-f]{40}' | wc -l` ;
chomp $number_of_commits ;
if($number_of_commits)
{
#print "number of git revision: $number_of_commits.\n" ;
return("${version}.${number_of_commits}") ;
}
else
{
print "Couldn't get git revision, using version from '$file'!\n" ;
return($version) ;
}
}
else
{
return($version) ;
}
}
sub ACTION_author_test
{
my $self = shift;
local $self->{properties}{test_files} = 'xt/author/*.t' ;
$self->SUPER::ACTION_test();
}
sub ACTION_build
{
my $self = shift;
if($ENV{'App_Requirement_Arch_USE_GIT_VERSION_FOR_DIST'})
{
my ($version) = GetVersionAndRevisionFrom('lib/App/Requirement/Arch.pm') ;
#~ print "Generating version module ($version)\n" ;
open VERSION, '>', 'Version.pm' or die "can't generate Version module: $!\n" ;
print VERSION <<EOV ;
# version module automatically generated by the build system
package Config::Version ;
sub GetVersion {return '$version'} ;
1 ;
# end of generated version module
EOV
close VERSION ;
}
$self->SUPER::ACTION_build(@_);
}
sub ACTION_dist
{
my $self = shift;
if($ENV{'App_Requirement_Arch_USE_GIT_VERSION_FOR_DIST'})
{
my $have_git = $self->do_system('git --version');
if($have_git)
{
print `git status`;
if($self->do_system('git log --decorate > git_Changes'))
{
use File::Copy;
move('git_Changes', 'Changes') ;
}
else
{
print "Couldn't get git log, 'Changes' will not be generated from git log!\n" ;
}
}
else
{
print "git not found, 'Changes' will not be generated from git log!\n" ;
}
}
$self->SUPER::ACTION_test() ;
#~ $self->ACTION_author_test() ;
$self->SUPER::ACTION_dist();
};
EOC
my $class = Module::Build->subclass(class => 'App::Requirement::Arch', code => $code) ;
my $build = $class->new
(
module_name => 'App::Requirement::Arch',
dist_version => GetVersionAndRevisionFrom('lib/App/Requirement/Arch.pm'),
license => 'perl',
build_requires =>
{
'Text::Diff' => 0,
'Test::Block' => 0,
'Test::Exception' => 0,
'Test::NoWarnings' => 0,
'Test::Warn' => 0,
'Directory::Scratch::Structured' => 0,
},
requires =>
{
'Readonly' => 0,
'Sub::Exporter' => 0,
'Check::ISA' => '0.04',
'Data::TreeDumper' => 0,
'Data::TreeDumper::Utils' => 0,
'Data::TreeDumper::Renderer::DHTML' => 0,
'Proc::InvokeEditor' => 0,
'Cwd' => 0,
'File::Basename' => 0,
'File::Spec' => 0,
'List::MoreUtils' => 0,
'List::Util' => 0,
'File::Slurp' => 0,
'Module::Util' =>0,
'Scalar::Util' => '1.19',
'File::HomeDir' => '0.86',
'Text::Pluralize' => 0,
'Tie::IxHash' => 0,
'Devel::Cycle' => 0,
'App::Chained' => 0,
},
pm_files => \%all_modules,
#~ autosplit => \@split_modules,
script_files =>
[
'scripts/templates/master_template.pl',
'scripts/templates/master_categories.pl',
'scripts/templates/free_form_template.rat',
'scripts/field_filters/requirement_fields.pl',
'scripts/field_filters/flat_requirement_fields.pl',
'scripts/field_filters/test_requirement_fields.pl',
( run in 2.066 seconds using v1.01-cache-2.11-cpan-8f98c5d2c55 )