84 lines
2.3 KiB
Bash
Executable File
84 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright (c) 2010-2025, Lawrence Livermore National Security, LLC. Produced
|
|
# at the Lawrence Livermore National Laboratory. All Rights reserved. See files
|
|
# LICENSE and NOTICE for details. LLNL-CODE-806117.
|
|
#
|
|
# This file is part of the MFEM library. For more information and source code
|
|
# availability visit https://mfem.org.
|
|
#
|
|
# MFEM is free software; you can redistribute it and/or modify it under the
|
|
# terms of the BSD-3 license. We welcome feedback and contributions, see file
|
|
# CONTRIBUTING.md for details.
|
|
|
|
# Print usage information
|
|
case $1 in
|
|
-h|-help)
|
|
cat <<EOF
|
|
|
|
$0 [-h|-help] {mfem_dir}
|
|
|
|
where: {mfem_dir} is the MFEM source directory [default value: ../..]
|
|
-h|-help prints this usage information and exits
|
|
|
|
This script checks for compliance with mfem's .gitignore rules in mfem_dir.
|
|
To be useful, the script should be run after the baseline (or similar) script.
|
|
|
|
Example usage: $0 ../..
|
|
|
|
EOF
|
|
exit
|
|
;;
|
|
esac
|
|
|
|
# Setup
|
|
cur_dir=`pwd`
|
|
mfem_dir=$1
|
|
if [ "$mfem_dir" = "" ]; then
|
|
mfem_dir="../.."
|
|
fi
|
|
shift
|
|
cd $mfem_dir
|
|
|
|
# Verify that files removed by "make distclean" (e.g. files generated by running
|
|
# examples and miniapps) are ignored.
|
|
(git status -s | grep -v .gitignore) 1>&2
|
|
|
|
# Verify that no other files are being ignored, with the possible exception of
|
|
# OS-specific files.
|
|
make distclean
|
|
mv .gitignore .gitignore-bak
|
|
cat > .gitignore <<EOF
|
|
*.dSYM
|
|
.DS_Store
|
|
EOF
|
|
(git status -s | grep -v .gitignore) 1>&2
|
|
mv -f .gitignore-bak .gitignore
|
|
|
|
# Return to the original directory
|
|
cd $cur_dir
|
|
|
|
# Tell users what to do if the script fails
|
|
test_name="$(basename "$0")"
|
|
if [ -s "$test_name.err" ]; then
|
|
cat > $test_name.msg <<EOF
|
|
|
|
To correct this error, make sure that the .gitignore file is properly updated.
|
|
|
|
Generally, this file should contain exactly the files that can be generated from
|
|
the repository (via building + running) that we *do not* want in the repository.
|
|
(This way such files cannot be accidentally committed.)
|
|
|
|
In particular, make sure that:
|
|
|
|
1) All new executables and outputs from example/miniapp runs (e.g. mesh or
|
|
solution files), are listed in .gitignore.
|
|
2) The patterns listed in .gitignore are the same as the ones that are deleted
|
|
by 'make distclean'.
|
|
3) Nothing else is excluded from .gitignore.
|
|
|
|
Please contact a member of the MFEM team if you have questions.
|
|
|
|
EOF
|
|
fi
|