52 lines
1.5 KiB
Bash
Executable File
52 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
SRC_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
ROOT_DIR="$( cd "${SRC_DIR}/.." >/dev/null 2>&1 && pwd )"
|
|
TESTS_DIR="$( cd "${ROOT_DIR}/tests" >/dev/null 2>&1 && pwd )"
|
|
|
|
CLANG_FORMAT=${CLANG_FORMAT:-clang-format}
|
|
${CLANG_FORMAT} --version
|
|
|
|
show_help()
|
|
{
|
|
# Tells cat to stop reading file when EOF is detected
|
|
cat << EOF
|
|
Usage: ./clang-format-all.sh [-ah]
|
|
Format files in the SwiftShader repository
|
|
-h, --help Display this message and exit
|
|
-a, --all Format all files (default is to format only files active in a git CL)
|
|
EOF
|
|
# cat finishes printing
|
|
}
|
|
|
|
while [[ $# -gt 0 ]]
|
|
do
|
|
case $1 in
|
|
-a|--all)
|
|
all=1
|
|
shift
|
|
;;
|
|
-h|--help)
|
|
show_help
|
|
exit 0
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ $all -eq 1 ]]
|
|
then
|
|
for DIR in "${SRC_DIR}/Device" "${SRC_DIR}/Pipeline" "${SRC_DIR}/Reactor" "${SRC_DIR}/System" "${SRC_DIR}/Vulkan" "${SRC_DIR}/WSI" "${TESTS_DIR}"
|
|
do
|
|
# Double clang-format, as it seems that one pass isn't always enough
|
|
find ${DIR} -iname "*.hpp" -o -iname "*.cpp" -o -iname "*.inl" | xargs ${CLANG_FORMAT} -i -style=file
|
|
find ${DIR} -iname "*.hpp" -o -iname "*.cpp" -o -iname "*.inl" | xargs ${CLANG_FORMAT} -i -style=file
|
|
done
|
|
else
|
|
BASEDIR=$(git rev-parse --show-toplevel)
|
|
FILES=$(git diff --cached --name-only --diff-filter=ACM | grep '\.cpp$\|\.hpp\|\.c$\|\.h$')
|
|
for FILE in $FILES
|
|
do
|
|
${CLANG_FORMAT} -i -style=file "$BASEDIR/$FILE"
|
|
done
|
|
fi
|