Craig Berry <[EMAIL PROTECTED]> wrote on 03/15/2005 11:38:18 AM:

> On Tuesday, March 15, 2005, at 08:56AM, John E. Malmberg
> <[EMAIL PROTECTED]> wrote:

> >Is there a perl script that will identify all files that are present in
> >the unpacked directory except for the ones in the manifest or where
> >generated by the build procedure?
>
> Test::Smoke may have something like that.  In general, though, for the
core
> build we need to check the manifest before we have Perl, so it's done in
DCL
> in configure.com.

Here is the inverse of what you requested: list files not unpacked
but in the MANIFEST file.  It takes care of everything except for the
multiple period files (that vmstar.exe and configure.com already have
solutions for) This is run from an unpacked perl 5.8.6 source tree
on an ODS-2 volume:

$ perl -lane "print if ! -e $F[0]" MANIFEST
Changes5.8.2            Differences between 5.8.1 and 5.8.2
Changes5.8.3            Differences between 5.8.2 and 5.8.3
Changes5.8.4            Differences between 5.8.3 and 5.8.4
Changes5.8.5            Differences between 5.8.4 and 5.8.5
Cross/Makefile.SH.patch Cross-compilation
vos/config.alpha.def            definitions used by config.pl
vos/config.alpha.h              config.h for use with alpha VOS POSIX.1
support
vos/config.ga.def               definitions used by config.pl
vos/config.ga.h                 config.h for use with generally-available
VOS POSIX.1 support

If you wanted to also take care of the multi period filenames
there are several approaches.  Here is one that still (barely)
fits on one line that exploits the File::Basename::fileparse()
routine:

$ perl "-MFile::Basename" -lane "if(!-e
$F[0]){($a,$d,$c)=fileparse($F[0]);@f=split(/\./,basename($a));[EMAIL 
PROTECTED];$_=
 ""$d$f."".join'_',@f; print if !-e}" MANIFEST

So to obtain what you want you might want to have
a script run File::Find over the source tree and
compare the list of all files returned to a list
of files in the manifest that is built up from
one of the above algorithms.

I hope that helps.

Peter Prymmer

Reply via email to