mirror of
https://github.com/CLIUtils/CLI11.git
synced 2025-04-29 12:13:52 +00:00
37 lines
820 B
Bash
Executable File
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
|