#!/bin/sh # # Copyright by the Board of Trustees of the University of Illinois. # All rights reserved. # # This file is part of HDF5. The full HDF5 copyright notice, including # terms governing use, modification, and redistribution, is contained in # the files COPYING and Copyright.html. COPYING can be found at the root # of the source code distribution tree; Copyright.html can be found at the # root level of an installed copy of the electronic HDF5 document set and # is linked from the top-level documents page. It can also be found at # http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have # access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. # # Check that all the files in MANIFEST exist and that (if this is a # SVN checkout) that all the SVN-managed files appear in the # MANIFEST. verbose=yes MANIFEST=/tmp/H5_MANIFEST.$$ # function definitions GETSVNENTRIES () # Purpose: Extract filenames from the svn entries file # $1: directory name in which the svn entries is. # steps: # 1. remove all single line entries so that step 2 does not fail on them. # 2. merge all multiple lines entries into single lines. # 3. remove all non file entries. # 4. insert a blank line because some entries files has no kind="file" # entry and ed does not like to do g on an empty file. # 5. remove everything except the file name. # 6. remove all blank lines, including the inserted one. { SVNENTRY=/tmp/H5_SVNENTRY.$$ cp $1/entries $SVNENTRY chmod u+w $SVNENTRY # entries file is not writable. ed - $SVNENTRY <$/d g/^$/j v/kind="file"/d a . g/.*name="/s/// g/".*/s/// g/^$/d w q EOF cat $SVNENTRY rm $SVNENTRY } # Main test "$verbose" && echo " Checking MANIFEST..." 1>&2 # clean up $MANIFEST file when exits trap "rm -f $MANIFEST" 0 # First make sure i am in the directory in which there is an MANIFEST file # and then do the checking from there. Will try the following, # current directory, parent directory, the directory this command resides. if [ -f MANIFEST ]; then continue elif [ -f ../MANIFEST ]; then cd .. else commanddir=`dirname $0` if [ -d "$commanddir" -a -f $commanddir/MANIFEST ]; then cd $commanddir continue else echo MANIFEST file not found. Abort. exit 1 fi fi # Copy the manifest file to get a list of file names. grep '^\.' MANIFEST | expand | cut -f1 -d' ' >$MANIFEST for file in `cat $MANIFEST`; do if [ ! -f $file ]; then echo "- $file" fail=yes fi done for svn in `find . -type d -name .svn -print`; do path=`echo $svn |sed 's/\/.svn//'` for file in `GETSVNENTRIES $svn`; do if (grep $path/$file$ $MANIFEST >/dev/null); then : else echo "+ $path/$file" fail=yes fi done done if [ "X$fail" = "Xyes" ]; then cat 1>&2 <&2 exit 0