123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/usr/bin/env bash
- # Original source https://github.com/Project-OSRM/osrm-backend/blob/master/scripts/format.sh
- set -o errexit
- set -o pipefail
- set -o nounset
- if [ ${#} -eq 1 ]; then
- VERBOSITY="--verbose"
- else
- VERBOSITY=""
- fi
- # Runs the Clang Formatter in parallel on the code base.
- # Return codes:
- # - 1 there are files to be formatted
- # - 0 everything looks fine
- # Get CPU count
- OS=$(uname)
- NPROC=1
- if [[ ${OS} = "Linux" ]] ; then
- NPROC=$(nproc)
- elif [[ ${OS} = "Darwin" ]] ; then
- NPROC=$(sysctl -n hw.physicalcpu)
- fi
- # Discover clang-format
- if type clang-format-13 2> /dev/null ; then
- CLANG_FORMAT=clang-format-13
- elif type clang-format 2> /dev/null ; then
- # Clang format found, but need to check version
- CLANG_FORMAT=clang-format
- V=$(clang-format --version)
- if [[ $V != *"version 13.0"* ]]; then
- echo "clang-format is not 13.0 (returned ${V})"
- exit 1
- fi
- else
- echo "No appropriate clang-format found (expected clang-format-13.0.0, or clang-format)"
- exit 1
- fi
- find . -type d \( \
- -path ./\*build\* -o \
- -path ./release -o \
- -path ./cmake -o \
- -path ./plugins/decklink/\*/decklink-sdk -o \
- -path ./plugins/enc-amf -o \
- -path ./plugins/mac-syphon/syphon-framework -o \
- -path ./plugins/obs-outputs/ftl-sdk -o \
- -path ./plugins/obs-websocket/deps \
- \) -prune -false -type f -o \
- -name '*.h' -or \
- -name '*.hpp' -or \
- -name '*.m' -or \
- -name '*.mm' -or \
- -name '*.c' -or \
- -name '*.cpp' \
- | xargs -L100 -P ${NPROC} "${CLANG_FORMAT}" ${VERBOSITY} -i -style=file -fallback-style=none
|