#!/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_13 () # Purpose: Extract filenames from the svn v1.3.* 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 } GETSVNENTRIES_14 () # Purpose: Extract filenames from the svn v1.4.* entries file # $1: directory name in which the svn entries is. # steps: # 1. all valid files are followed by a line containing "file" only. # 2. find them by looking for "file" first, then mark its preceding line as # wanted. # 3. remove all non-marked line. { SVNENTRY=/tmp/H5_SVNENTRY.$$ cp $1/entries $SVNENTRY chmod u+w $SVNENTRY # entries file is not writable. ed - $SVNENTRY <&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 # According to svn version, figure out the right version of GETSVNENTRIES # to use. svnversion=`svn --version --quiet` case "$svnversion" in 1.4.*) getsvnentries=GETSVNENTRIES_14 ;; 1.3.*) getsvnentries=GETSVNENTRIES_13 ;; *) #default to 1.3 getsvnentries=GETSVNENTRIES_13 ;; esac 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