1*6467f958SSadaf Ebrahimi#!/usr/bin/env bash 2*6467f958SSadaf Ebrahimi 3*6467f958SSadaf Ebrahimi# Arg used to specify non-'origin/main' comparison branch 4*6467f958SSadaf EbrahimiORIGIN_BRANCH=${1:-"origin/main"} 5*6467f958SSadaf EbrahimiCLANG_BINARY=${2:-"`which clang-format-11`"} 6*6467f958SSadaf Ebrahimi 7*6467f958SSadaf Ebrahimi# Run git-clang-format to check for violations 8*6467f958SSadaf EbrahimiCLANG_FORMAT_OUTPUT=$(git-clang-format --diff $ORIGIN_BRANCH --extensions c,cpp,h,hpp --binary $CLANG_BINARY) 9*6467f958SSadaf Ebrahimi 10*6467f958SSadaf Ebrahimi# Check for no-ops 11*6467f958SSadaf Ebrahimigrep '^no modified files to format$' <<<"$CLANG_FORMAT_OUTPUT" && exit 0 12*6467f958SSadaf Ebrahimigrep '^clang-format did not modify any files$' <<<"$CLANG_FORMAT_OUTPUT" && exit 0 13*6467f958SSadaf Ebrahimi 14*6467f958SSadaf Ebrahimi# Dump formatting diff and signal failure 15*6467f958SSadaf Ebrahimiecho -e "\n==== FORMATTING VIOLATIONS DETECTED ====\n" 16*6467f958SSadaf Ebrahimiecho "$CLANG_FORMAT_OUTPUT" 17*6467f958SSadaf Ebrahimiexit 1 18