xref: /aosp_15_r20/external/swiftshader/src/clang-format-all.sh (revision 03ce13f70fcc45d86ee91b7ee4cab1936a95046e)
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