From ef61f7a6cd11bcba8b4baf94198d2c6d778f52a8 Mon Sep 17 00:00:00 2001 From: "H.Merijn Brand" Date: Mon, 30 Mar 2009 13:28:40 +0200 Subject: [PATCH] more derived stuff --- V.pm | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/V.pm b/V.pm index 33860ac..cb9d710 100644 --- a/V.pm +++ b/V.pm @@ -141,8 +141,9 @@ sub _make_derived { my $conf = shift; - for ( [ lseektype => "Off_t" ], - [ myuname => "uname" ], + for ( [ lseektype => "Off_t" ], + [ myuname => "uname" ], + [ perl_patchlevel => "patch" ], ) { my ($official, $derived) = @$_; $conf->{config}{$derived} ||= $conf->{config}{$official}; @@ -150,6 +151,32 @@ sub _make_derived $conf->{derived}{$derived} = delete $conf->{config}{$derived}; } + if (exists $conf->{config}{version_patchlevel_string} && + !exists $conf->{config}{api_version}) { + my $vps = $conf->{config}{version_patchlevel_string}; + $vps =~ s{\b revision \s+ (\S+) }{}x and + $conf->{config}{revision} ||= $1; + + $vps =~ s{\b version \s+ (\S+) }{}x and + $conf->{config}{api_version} ||= $1; + $vps =~ s{\b subversion \s+ (\S+) }{}x and + $conf->{config}{subversion} ||= $1; + $vps =~ s{\b patch \s+ (\S+) }{}x and + $conf->{config}{perl_patchlevel} ||= $1; + } + + ($conf->{config}{version_patchlevel_string} ||= join " ", + map { ($_, $conf->{config}{$_} ) } + grep { $conf->{config}{$_} } + qw( api_version subversion perl_patchlevel )) =~ s/\bperl_//; + + $conf->{config}{perl_patchlevel} ||= ""; # 0 is not a valid patchlevel + + if ($conf->{config}{perl_patchlevel} =~ m{^git\w*-([^-]+)}i) { + $conf->{config}{git_branch} ||= $1; + $conf->{config}{git_describe} ||= $conf->{config}{perl_patchlevel}; + } + $conf; } # _make_derived @@ -166,6 +193,12 @@ sub plv2hash next; } + if (s/^\s+(Snapshot of:)\s+(\S+)//) { + $config{git_commit_id_title} = $1; + $config{git_commit_id} = $2; + next; + } + my %kv = m/\G,?\s*([^=]+)=('[^']+?'|\S+)/gc; while (my ($k, $v) = each %kv) { -- 2.11.4.GIT