Skip to content
This repository was archived by the owner on Jan 31, 2025. It is now read-only.

Commit 2f0a844

Browse files
committed
Add pre-commit hook
Check that the code follows a consistant coding style before committing. The current command will be interrupted if the commit doesn't follow the code style This fixes #99 Signed-off-by: Xiang, Haihao <[email protected]>
1 parent 85d5aa7 commit 2f0a844

File tree

3 files changed

+79
-1
lines changed

3 files changed

+79
-1
lines changed

CONTRIBUTING.md

+33-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,39 @@ Intel-vaapi-driver is an open source project licensed under the [MIT License] (h
44

55
## Coding Style
66

7-
Intel-vaapi-driver does not have a defined coding style at this time, but that will be updated.
7+
In our project we follow the Linux coding style with a few changes. You may run 'astyle --style=linux -cnpUH -s4 -M120 <file>'
8+
to format/indent a single file or run './style_unify' in the top-level directory to handle all .c/.h files in the src directory.
9+
10+
You will fail to commit your patch if your patch doesn't follow the coding style and the pre-commit hook will prompt you to fix
11+
the coding style.
12+
13+
For example:
14+
15+
```
16+
Checking coding style...
17+
18+
--- .merge_file_tZMQ4C 2017-03-31 11:02:36.244617415 +0800
19+
+++ /tmp/.merge_file_tZMQ4C.D0V 2017-03-31 11:02:36.274617276 +0800
20+
@@ -438,8 +438,7 @@ intel_batchbuffer_align(struct intel_bat
21+
assert((pad_size & 3) == 0);
22+
assert(intel_batchbuffer_space(batch) >= pad_size);
23+
24+
- while (pad_size >= 4)
25+
- {
26+
+ while (pad_size >= 4) {
27+
intel_batchbuffer_emit_dword(batch, 0);
28+
pad_size -= 4;
29+
}
30+
31+
**************************************************************************
32+
Coding style error in src/intel_batchbuffer.c
33+
34+
Please fix the coding style before committing. You may run the command
35+
below to fix the coding style from the top-level directory
36+
37+
astyle --style=linux -cnpUH -s4 -M120 src/intel_batchbuffer.c
38+
**************************************************************************
39+
```
840

941
## Certificate of Origin
1042

autogen.sh

+9
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,15 @@ test -z "$srcdir" && srcdir=.
66
ORIGDIR=`pwd`
77
cd "$srcdir"
88

9+
# install pre-commit hook
10+
SRC_PRE_COMMIT=hooks/pre-commit.hook
11+
GIT_PRE_COMMIT=.git/hooks/pre-commit
12+
13+
if [ ! \( -x $GIT_PRE_COMMIT -a -L $GIT_PRE_COMMIT \) ]; then
14+
rm -f $GIT_PRE_COMMIT
15+
ln -s ../../$SRC_PRE_COMMIT $GIT_PRE_COMMIT
16+
fi
17+
918
autoreconf -v --install || exit 1
1019
cd $ORIGDIR || exit $?
1120

hooks/pre-commit.hook

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/bin/sh
2+
#
3+
# Use astyle to check the coding style
4+
#
5+
6+
ASTYLE=astyle
7+
ASTYLE_PARAMS="--style=linux -cnpUH -s4 -M120"
8+
9+
if [ -z "`which $ASTYLE 2> /dev/null`" ]; then
10+
echo "git pre-commit hook:"
11+
echo "Don't find $ASTYLE, please install $ASTYLE before committing the changes"
12+
exit 1
13+
fi
14+
15+
echo "Checking coding style..."
16+
echo ""
17+
for file in `git diff-index --cached --name-only --diff-filter=ACMR HEAD src/ | grep "\.[ch]$" 2> /dev/null`; do
18+
tmp0file=`git checkout-index --temp ${file} | cut -f 1`
19+
tmp1file=`mktemp /tmp/${tmp0file}.XXX` || exit 1
20+
$ASTYLE $ASTYLE_PARAMS < ${tmp0file} > ${tmp1file} 2> /dev/null
21+
diff -up "${tmp0file}" "${tmp1file}"
22+
ret=$?
23+
rm -f "${tmp0file}" "${tmp1file}"
24+
if [ $ret != 0 ]; then
25+
echo ""
26+
echo "**************************************************************************"
27+
echo " Coding style error in $file"
28+
echo ""
29+
echo " Please fix the coding style before committing. You may run the command"
30+
echo " below to fix the coding style from the top-level directory"
31+
echo ""
32+
echo " $ASTYLE $ASTYLE_PARAMS $file"
33+
echo "**************************************************************************"
34+
exit 1
35+
fi
36+
done
37+
echo "PASS!!!"

0 commit comments

Comments
 (0)