#!/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 ) echo "Fixing: $file" clang-format -i -style=file "${1}" git add "${1}" ;; *) ;; 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