1*03ce13f7SAndroid Build Coastguard Worker#!/bin/bash 2*03ce13f7SAndroid Build Coastguard Worker 3*03ce13f7SAndroid Build Coastguard WorkerSRC_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 4*03ce13f7SAndroid Build Coastguard WorkerROOT_DIR="$( cd "${SRC_DIR}/.." >/dev/null 2>&1 && pwd )" 5*03ce13f7SAndroid Build Coastguard WorkerTESTS_DIR="$( cd "${ROOT_DIR}/tests" >/dev/null 2>&1 && pwd )" 6*03ce13f7SAndroid Build Coastguard Worker 7*03ce13f7SAndroid Build Coastguard WorkerCLANG_FORMAT=${CLANG_FORMAT:-clang-format} 8*03ce13f7SAndroid Build Coastguard Worker${CLANG_FORMAT} --version 9*03ce13f7SAndroid Build Coastguard Worker 10*03ce13f7SAndroid Build Coastguard Workershow_help() 11*03ce13f7SAndroid Build Coastguard Worker{ 12*03ce13f7SAndroid Build Coastguard Worker# Tells cat to stop reading file when EOF is detected 13*03ce13f7SAndroid Build Coastguard Workercat << EOF 14*03ce13f7SAndroid Build Coastguard WorkerUsage: ./clang-format-all.sh [-ah] 15*03ce13f7SAndroid Build Coastguard WorkerFormat files in the SwiftShader repository 16*03ce13f7SAndroid Build Coastguard Worker-h, --help Display this message and exit 17*03ce13f7SAndroid Build Coastguard Worker-a, --all Format all files (default is to format only files active in a git CL) 18*03ce13f7SAndroid Build Coastguard WorkerEOF 19*03ce13f7SAndroid Build Coastguard Worker# cat finishes printing 20*03ce13f7SAndroid Build Coastguard Worker} 21*03ce13f7SAndroid Build Coastguard Worker 22*03ce13f7SAndroid Build Coastguard Workerwhile [[ $# -gt 0 ]] 23*03ce13f7SAndroid Build Coastguard Workerdo 24*03ce13f7SAndroid Build Coastguard Worker case $1 in 25*03ce13f7SAndroid Build Coastguard Worker -a|--all) 26*03ce13f7SAndroid Build Coastguard Worker all=1 27*03ce13f7SAndroid Build Coastguard Worker shift 28*03ce13f7SAndroid Build Coastguard Worker ;; 29*03ce13f7SAndroid Build Coastguard Worker -h|--help) 30*03ce13f7SAndroid Build Coastguard Worker show_help 31*03ce13f7SAndroid Build Coastguard Worker exit 0 32*03ce13f7SAndroid Build Coastguard Worker ;; 33*03ce13f7SAndroid Build Coastguard Worker esac 34*03ce13f7SAndroid Build Coastguard Workerdone 35*03ce13f7SAndroid Build Coastguard Worker 36*03ce13f7SAndroid Build Coastguard Workerif [[ $all -eq 1 ]] 37*03ce13f7SAndroid Build Coastguard Workerthen 38*03ce13f7SAndroid Build Coastguard Worker for DIR in "${SRC_DIR}/Device" "${SRC_DIR}/Pipeline" "${SRC_DIR}/Reactor" "${SRC_DIR}/System" "${SRC_DIR}/Vulkan" "${SRC_DIR}/WSI" "${TESTS_DIR}" 39*03ce13f7SAndroid Build Coastguard Worker do 40*03ce13f7SAndroid Build Coastguard Worker # Double clang-format, as it seems that one pass isn't always enough 41*03ce13f7SAndroid Build Coastguard Worker find ${DIR} -iname "*.hpp" -o -iname "*.cpp" -o -iname "*.inl" | xargs ${CLANG_FORMAT} -i -style=file 42*03ce13f7SAndroid Build Coastguard Worker find ${DIR} -iname "*.hpp" -o -iname "*.cpp" -o -iname "*.inl" | xargs ${CLANG_FORMAT} -i -style=file 43*03ce13f7SAndroid Build Coastguard Worker done 44*03ce13f7SAndroid Build Coastguard Workerelse 45*03ce13f7SAndroid Build Coastguard Worker BASEDIR=$(git rev-parse --show-toplevel) 46*03ce13f7SAndroid Build Coastguard Worker FILES=$(git diff --name-only --diff-filter=ACM | grep '\.cpp$\|\.hpp\|\.c$\|\.h$') 47*03ce13f7SAndroid Build Coastguard Worker for FILE in $FILES 48*03ce13f7SAndroid Build Coastguard Worker do 49*03ce13f7SAndroid Build Coastguard Worker ${CLANG_FORMAT} -i -style=file "$BASEDIR/$FILE" 50*03ce13f7SAndroid Build Coastguard Worker done 51*03ce13f7SAndroid Build Coastguard Workerfi 52