xref: /freebsd/contrib/libcbor/misc/hooks/pre-commit (revision a3cefe7f2b4df0f70ff92d4570ce18e517af43ec)
1#!/bin/sh
2
3set -e
4
5# Run cmake-lint, clang-format, and add modified files
6MODIFIED_UNSTAGED=$(git -C . diff --name-only)
7MODIFIED_STAGED=$(git -C . diff --name-only --cached --diff-filter=d)
8
9CMAKE_FILES=$(echo "${MODIFIED_STAGED} ${MODIFIED_UNSTAGED}" | grep -oE '(\S*)CMakeLists.txt' | cat)
10if ! cmake-lint --line-width 140 ${CMAKE_FILES} > /dev/null; then
11  echo "cmake-lint failed:"
12  cmake-lint --line-width 140 ${CMAKE_FILES}
13fi
14
15./clang-format.sh
16
17git add ${MODIFIED_STAGED}
18
19if [[ ${MODIFIED_UNSTAGED} != $(git -C . diff --name-only) ]]; then
20  echo "WARNING: Non-staged files were reformatted. Please review and/or add" \
21    "them"
22fi
23
24