| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | #!/usr/bin/env bash# Format all source files in the project.## Set CLANG_FORMAT_CMD environment variable to specify executable used (default: `clang-format`).set -e################################################################################# Configuration# folders to searchFOLDERS="    include    internal    examples"# paths to ignoreEXCLUDE_PATHS="    internal/ceres/gtest/*    internal/ceres/gmock/*    internal/ceres/gmock_gtest_all.cc    internal/ceres/gmock_main.cc    internal/ceres/generated/*    internal/ceres/generated_bundle_adjustment_tests/*    internal/ceres/schur_eliminator.cc    internal/ceres/partitioned_matrix_view.cc    internal/ceres/schur_templates.cc"################################################################################# Implementation# directory of this script and the repository rootSCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"REPO_DIR="$SCRIPT_DIR/.."# set default for CLANG_FORMAT_CMDCLANG_FORMAT_CMD=${CLANG_FORMAT_CMD:-clang-format}echo "Formatting with $CLANG_FORMAT_CMD (`$CLANG_FORMAT_CMD --version`)"# prepare arguments to exclude ignored pathsEXCLUDE_ARGS=""for p in $EXCLUDE_PATHS; do    EXCLUDE_ARGS="-not -path */$p $EXCLUDE_ARGS"done# for each folder, format header and source dirsfor d in $FOLDERS; do    d="$REPO_DIR/$d"    find "$d" \( -name "*.h" -or -name "*.cc" \) $EXCLUDE_ARGS | xargs $CLANG_FORMAT_CMD -verbose -idone
 |