mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-21 01:04:10 +08:00
89fbe00dec
* commit '54957d37f5aa73912763dbb6e308555e863c43f4': Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes. Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh. Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1 Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.
155 lines
4.0 KiB
Bash
Executable File
155 lines
4.0 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright by The HDF Group.
|
|
# 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 COPYING file, which can be found at the root of the source code
|
|
# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.
|
|
# If you do not have access to either file, you may request a copy from
|
|
# help@hdfgroup.org.
|
|
#
|
|
|
|
# Check that all the files in MANIFEST exist and (if this is a
|
|
# GIT checkout) that all the GIT-managed files appear in the
|
|
# MANIFEST.
|
|
#
|
|
|
|
verbose=yes
|
|
MANIFEST=/tmp/HD_MANIFEST.$$
|
|
AUTOGEN=./autogen.sh
|
|
AUTOGEN_LOG=/tmp/autogen.log.$$
|
|
|
|
# Main
|
|
test "$verbose" && echo " Checking MANIFEST..." 1>&2
|
|
# clean up $MANIFEST file when exits
|
|
trap "rm -f $MANIFEST" 0
|
|
|
|
# Only split lines on newline, not whitespace
|
|
set -f
|
|
IFS='
|
|
'
|
|
|
|
# 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
|
|
|
|
# Do an autogen if generated files (e.g., configure) is not present
|
|
if [ ! -f configure ]; then
|
|
echo " running $AUTOGEN"
|
|
$AUTOGEN > $AUTOGEN_LOG 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
echo $AUTOGEN encountered error. Abort.
|
|
echo output from $AUTOGEN:
|
|
cat $AUTOGEN_LOG
|
|
exit 1
|
|
fi
|
|
rm $AUTOGEN_LOG
|
|
fi
|
|
|
|
# Check for duplicate entries. This can be done at any time, but it may as
|
|
# well be sooner so that if something else fails the presence of duplicates
|
|
# will already be known.
|
|
errcode=0
|
|
DUPLICATES=`perl -ne 's/#.*//; next if /^\s*$/; if ($uniq{$_}++) { print $_; }' MANIFEST`
|
|
if [ "$DUPLICATES" ]; then
|
|
cat 1>&2 <<EOF
|
|
These entries appear more than once in the MANIFEST:
|
|
$DUPLICATES
|
|
Please remove the duplicate lines and try again.
|
|
|
|
EOF
|
|
errcode=1
|
|
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
|
|
|
|
# Get the list of files under version control and check that they are
|
|
# present.
|
|
#
|
|
# First get a list of all the pending files with git status and
|
|
# check those.
|
|
git_stat=`git status -s`
|
|
for file in $git_stat; do
|
|
|
|
# Newly added files are not listed by git ls-files, which
|
|
# we check later.
|
|
|
|
# The line listing new files starts with 'A'.
|
|
letter=`echo $file | head -c 1`
|
|
if [ "$letter" = "A" ]; then
|
|
# Convert the git status columns to './' so it matches
|
|
# the manifest file name.
|
|
#
|
|
# There is a space between the status columns and file name, hence
|
|
# the '3'.
|
|
path=`echo $file | sed 's/^.\{3\}/\.\//g'`
|
|
# Ignore directories
|
|
if [ ! -d $path ]; then
|
|
if (grep ^$path$ $MANIFEST >/dev/null); then
|
|
:
|
|
else
|
|
echo "- $path"
|
|
fail=yes
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# Next check git ls-files, which gets a list of all files that are
|
|
# checked in.
|
|
git_ls=`git ls-files`
|
|
for file in $git_ls; do
|
|
path="./${file}"
|
|
# Ignore directories
|
|
if [ ! -d $path ]; then
|
|
if (grep ^$path$ $MANIFEST >/dev/null); then
|
|
:
|
|
else
|
|
echo "+ $path"
|
|
fail=yes
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# Finish up
|
|
if [ "X$fail" = "Xyes" ]; then
|
|
cat 1>&2 <<EOF
|
|
The MANIFEST is out of date. Files marked with a minus sign (-) no
|
|
longer exist; files marked with a plus sign (+) are GIT-managed but do
|
|
not appear in the MANIFEST. Please remedy the situation and try again.
|
|
EOF
|
|
exit 1
|
|
fi
|
|
|
|
if [ $errcode -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
test "$verbose" && echo " The MANIFEST is up to date." 1>&2
|
|
exit 0
|