diff --git a/pre-commit b/pre-commit
new file mode 100644
index 0000000000000000000000000000000000000000..82587fce34c8bd8df74b1a87e0ce6bb19ce18679
--- /dev/null
+++ b/pre-commit
@@ -0,0 +1,31 @@
+
+#!/bin/bash
+# Installation:
+#   cp pre-commit .git/hooks
+#   chmod +x .git/hooks/pre-commit
+
+OPTIONS="--convert-tabs --indent=spaces=2 --indent-switches --indent-col1-comments --break-blocks --delete-empty-lines --align-pointer=name --keep-one-line-blocks --keep-one-line-statements --lineend=linux"
+
+RETURN=0
+ASTYLE=$(which astyle)
+if [ $? -ne 0 ]; then
+	echo "[!] astyle not installed. Unable to check source file format policy." >&2
+	exit 1
+fi
+
+FILES=`git diff --cached --name-only --diff-filter=ACMR | grep -E "\.(c|cpp|h)$"`
+for FILE in $FILES; do
+	$ASTYLE $OPTIONS < $FILE | cmp -s $FILE -
+	if [ $? -ne 0 ]; then
+		echo "[!] $FILE does not respect the agreed coding style." >&2
+		RETURN=1
+	fi
+done
+
+if [ $RETURN -eq 1 ]; then
+	echo "" >&2
+	echo "Make sure you have run astyle with the following options:" >&2
+	echo $OPTIONS >&2
+fi
+
+exit $RETURN
\ No newline at end of file