1#!/bin/bash 2 3# This script reformats source files using the clang-format utility. 4# 5# Files are changed in-place, so make sure you don't have anything open in an 6# editor, and you may want to commit before formatting in case of awryness. 7# 8# This must be run on a clean repository to succeed 9# 10# Input parmameter must be full path to git repo to scan 11 12DIR=$1 13cd ${DIR} 14 15set -e 16 17echo "Formatting code under $DIR/" 18 19if [[ -f "setup.cfg" ]]; then 20 pycodestyle --show-source . 21 rc=$? 22 if [[ ${rc} -ne 0 ]]; then 23 exit ${rc} 24 fi 25fi 26 27# Allow called scripts to know which clang format we are using 28export CLANG_FORMAT="clang-format-6.0" 29 30if [[ -f ".clang-format" ]]; then 31 find . -regextype sed -regex ".*\.[hc]\(pp\)\?" -not -name "*mako*" -print0 |\ 32 xargs -0 "${CLANG_FORMAT}" -i 33 git --no-pager diff --exit-code 34fi 35 36# Sometimes your situation is terrible enough that you need the flexibility. 37# For example, phosphor-mboxd. 38if [[ -f "format-code.sh" ]]; then 39 ./format-code.sh 40 git --no-pager diff --exit-code 41fi 42