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 search
- FOLDERS="
- include
- internal
- examples
- "
- # paths to ignore
- EXCLUDE_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 root
- SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
- REPO_DIR="$SCRIPT_DIR/.."
- # set default for CLANG_FORMAT_CMD
- CLANG_FORMAT_CMD=${CLANG_FORMAT_CMD:-clang-format}
- echo "Formatting with $CLANG_FORMAT_CMD (`$CLANG_FORMAT_CMD --version`)"
- # prepare arguments to exclude ignored paths
- EXCLUDE_ARGS=""
- for p in $EXCLUDE_PATHS; do
- EXCLUDE_ARGS="-not -path */$p $EXCLUDE_ARGS"
- done
- # for each folder, format header and source dirs
- for d in $FOLDERS; do
- d="$REPO_DIR/$d"
- find "$d" \( -name "*.h" -or -name "*.cc" \) $EXCLUDE_ARGS | xargs $CLANG_FORMAT_CMD -verbose -i
- done
|