mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-12-09 07:32:32 +08:00
779af14613
New features Description: Add options of verbose (-v, -v9) and -fname which limits to checking file with the file name pattern. Solution: Platforms tested: Did not h5committest which does not cover this command. Verified it by hand. Misc. update:
289 lines
8.8 KiB
Bash
Executable File
289 lines
8.8 KiB
Bash
Executable File
#! /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 Copyright notice.
|
|
# Check that all the files have the proper copyright notice.
|
|
# It goes down directories recursively.
|
|
#
|
|
# Programmer: Albert Cheng
|
|
# Created Data: 2003/07/22
|
|
|
|
PROGNAME=$0
|
|
DIFF="diff"
|
|
COPYRIGHTFILE=/tmp/copy.$$
|
|
EXTRACTEDFILE=/tmp/extracted.$$
|
|
VERBOSE= # default no
|
|
DIRS=. # default current directory
|
|
|
|
|
|
USAGE()
|
|
{
|
|
cat <<EOF
|
|
Usage: $PROGNAME [-h | -help] [-fname name-patter] [-v | -v9] [dir1 dir2 ...]
|
|
Check copyright notices of files in [dir1 dir2 ...}.
|
|
Default is to check files in current directory.
|
|
-h | -help
|
|
show this page.
|
|
-fname name-pattern
|
|
limit to files of name-pattern
|
|
-v
|
|
verbose mode
|
|
-v9
|
|
highly verbose
|
|
EOF
|
|
}
|
|
|
|
|
|
# Parse Options
|
|
#
|
|
PARSE_OPTION()
|
|
{
|
|
while test $# -gt 0 ; do
|
|
case "$1" in
|
|
-h | -help )
|
|
USAGE
|
|
exit 0
|
|
;;
|
|
-fname )
|
|
shift
|
|
FNAME="$1"
|
|
;;
|
|
-v* )
|
|
VERBOSE=yes
|
|
if test X$1 = X-v9; then
|
|
set -x
|
|
fi
|
|
;;
|
|
-* )
|
|
echo "***Unknown option ($1)"
|
|
USAGE
|
|
exit 1
|
|
;;
|
|
* )
|
|
DIRS=$*
|
|
break
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
}
|
|
|
|
|
|
# Check C and C++ source files
|
|
#
|
|
C_SOURCE()
|
|
{
|
|
f=$1
|
|
cat > ${COPYRIGHTFILE} << \EOF
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
* 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. *
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
EOF
|
|
# Must use stdin for wc to prevent filename from popping up.
|
|
nlines=`wc -l < ${COPYRIGHTFILE}| tr -d ' '`
|
|
head -${nlines} $f | $DIFF - ${COPYRIGHTFILE} >/dev/null 2>&1
|
|
if test $? -ne 0; then
|
|
# show the difference
|
|
echo ${f}:
|
|
head -${nlines} $f | $DIFF - ${COPYRIGHTFILE}
|
|
fi
|
|
}
|
|
|
|
|
|
# Check Fortran90 source files
|
|
#
|
|
FORTRAN_SOURCE()
|
|
{
|
|
f=$1
|
|
cat > ${COPYRIGHTFILE} << \EOF
|
|
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
! 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. *
|
|
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
EOF
|
|
# Must use stdin for wc to prevent filename from popping up.
|
|
nlines=`wc -l < ${COPYRIGHTFILE}| tr -d ' '`
|
|
head -${nlines} $f | $DIFF - ${COPYRIGHTFILE} >/dev/null 2>&1
|
|
if test $? -ne 0; then
|
|
# show the differences
|
|
echo ${f}:
|
|
head -${nlines} $f | $DIFF - ${COPYRIGHTFILE}
|
|
fi
|
|
}
|
|
|
|
|
|
# Check HTML Files
|
|
#
|
|
HTML_FILE()
|
|
{
|
|
f=$1
|
|
cat > ${COPYRIGHTFILE} << \EOF
|
|
<!--
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
* 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. *
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
-->
|
|
EOF
|
|
# Must use stdin for wc to prevent filename from popping up.
|
|
nlines=`wc -l < ${COPYRIGHTFILE}| tr -d ' '`
|
|
sed -n -e '/^<!--$/,/^ -->$/p' < $f | head -${nlines} > ${EXTRACTEDFILE}
|
|
$DIFF ${EXTRACTEDFILE} ${COPYRIGHTFILE} >/dev/null 2>&1
|
|
if test $? -ne 0; then
|
|
# show the differences
|
|
echo ${f}:
|
|
$DIFF ${EXTRACTEDFILE} ${COPYRIGHTFILE}
|
|
fi
|
|
}
|
|
|
|
|
|
# Check Shell script files
|
|
#
|
|
SHELL_FILE()
|
|
{
|
|
f=$1
|
|
cat > ${COPYRIGHTFILE} << \EOF
|
|
#! /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.
|
|
##
|
|
EOF
|
|
# Must use stdin for wc to prevent filename from popping up.
|
|
nlines=`wc -l < ${COPYRIGHTFILE}| tr -d ' '`
|
|
head -${nlines} $f | $DIFF - ${COPYRIGHTFILE} >/dev/null 2>&1
|
|
if test $? -ne 0; then
|
|
# show the differences
|
|
echo ${f}:
|
|
head -${nlines} $f | $DIFF - ${COPYRIGHTFILE}
|
|
fi
|
|
}
|
|
|
|
|
|
# Check Makefile
|
|
#
|
|
MAKE_FILE()
|
|
{
|
|
f=$1
|
|
cat > ${COPYRIGHTFILE} << \EOF
|
|
##
|
|
## 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.
|
|
##
|
|
EOF
|
|
# Must use stdin for wc to prevent filename from popping up.
|
|
nlines=`wc -l < ${COPYRIGHTFILE}| tr -d ' '`
|
|
head -${nlines} $f | $DIFF - ${COPYRIGHTFILE} >/dev/null 2>&1
|
|
if test $? -ne 0; then
|
|
# show the differences
|
|
echo ${f}:
|
|
head -${nlines} $f | $DIFF - ${COPYRIGHTFILE}
|
|
fi
|
|
}
|
|
|
|
|
|
#
|
|
# Main body
|
|
|
|
PARSE_OPTION "$@"
|
|
|
|
# use find to list all those file names and process them
|
|
# one by one.
|
|
(
|
|
if test -z "$FNAME" ; then
|
|
find $DIRS -type f -print
|
|
else
|
|
find $DIRS -type f -name "${FNAME}" -print
|
|
fi
|
|
) |
|
|
while read file; do
|
|
if test X-$VERBOSE = X-yes; then
|
|
echo checking ${file}...
|
|
fi
|
|
case ${file} in
|
|
*.c | *.h | *.cpp )
|
|
C_SOURCE ${file}
|
|
;;
|
|
*.f90 )
|
|
FORTRAN_SOURCE ${file}
|
|
;;
|
|
*.htm | *.html )
|
|
HTML_FILE ${file}
|
|
;;
|
|
*.sh | *.sh.in )
|
|
SHELL_FILE ${file}
|
|
;;
|
|
*Makefile | *Makefile.in )
|
|
MAKE_FILE ${file}
|
|
;;
|
|
*CVS/* )
|
|
# Skip
|
|
continue
|
|
;;
|
|
*)
|
|
echo "Unknown file type (${file})"
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Cleanup
|
|
rm -f ${EXTRACTEDFILE} ${COPYRIGHTFILE}
|