From: Jarkko Hietaniemi Date: Fri, 16 Nov 2001 00:37:36 +0000 (+0000) Subject: Add Larry Shatzer's VERSION verifying script. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=b972f109af5890881e3a2c54b8e1d4ff84ca62eb;p=p5sagit%2Fp5-mst-13.2.git Add Larry Shatzer's VERSION verifying script. p4raw-id: //depot/perl@13033 --- diff --git a/Porting/checkVERSION.pl b/Porting/checkVERSION.pl new file mode 100644 index 0000000..9ad2ff5 --- /dev/null +++ b/Porting/checkVERSION.pl @@ -0,0 +1,52 @@ +#!/usr/bin/perl -w + +# +# Check the tree against missing VERSIONs. +# +# Originally by Larry Shatzer +# + +use strict; +use File::Find; + +find( + sub { + return unless -f; + if (/\.pm$/ && $File::Find::name !~ m:/t/:) { # pm but not in a test + unless (parse_file($_)) { + print "$File::Find::name\n"; + } + } + }, @ARGV ? shift : "."); + +sub parse_file { + my $parsefile = shift; + + my $result; + + open(FH,$parsefile) or warn "Could not open '$parsefile': $!"; + + my $inpod = 0; + while () { + $inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod; + next if $inpod || /^\s*\#/; + chomp; + next unless /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/; + my $eval = qq{ + package ExtUtils::MakeMaker::_version; + no strict; + local $1$2; + \$$2=undef; do { + $_ + }; \$$2 + }; + no warnings; + $result = eval($eval); + warn "Could not eval '$eval' in $parsefile: $@" if $@; + $result = "undef" unless defined $result; + last; + } + close FH; + return $result; +} + diff --git a/Porting/pumpkin.pod b/Porting/pumpkin.pod index ee866ec..42f4428 100644 --- a/Porting/pumpkin.pod +++ b/Porting/pumpkin.pod @@ -241,6 +241,9 @@ some or all of the modules File::Basename, File::Spec, File::Path, and File::Copy to become aware of your native filesystem syntax and peculiarities. +Remember to have a $VERSION in the modules. You can use the +Porting/checkVERSION.pl script for checking this. + =item documentation If your operating system comes from outside UNIX you almost certainly