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