1
0
mirror of https://github.com/CLIUtils/CLI11.git synced 2025-04-29 20:23:55 +00:00
CLI11/scripts/clang-format-pre-commit
2018-05-04 11:21:35 +02:00

37 lines
820 B
Bash
Executable File

#!/usr/bin/env bash
# To use:
# ln -s scripts/clang-format.hook .git/hooks/pre-commit
# Based loosely on https://github.com/andrewseidl/githook-clang-format
format_file() {
file="${1}"
case "$file" in
*.hpp | *.cpp | .c | *.cc | *.cu | *.h )
if [ -f "${1}" ] ; then
clang-format -i -style=file -sort-includes "${1}"
if git diff-files --quiet -- "${1}" ; then
echo "Already nicely formatted: ${1}"
else
git add "${1}"
echo "Reformatting file: ${1}"
fi
fi
;;
*)
;;
esac
}
case "${1}" in
--about )
echo "Runs clang-format on source files"
;;
* )
for file in `git diff-index --cached --name-only HEAD` ; do
format_file "${file}"
done
;;
esac