瀏覽代碼

add formatting cmd

supperthomas 2 年之前
父節點
當前提交
4ac7e6092f
共有 2 個文件被更改,包括 65 次插入0 次删除
  1. 59 0
      .hooks/pre-commit
  2. 6 0
      .hooks/readme.md

+ 59 - 0
.hooks/pre-commit

@@ -0,0 +1,59 @@
+#!/bin/sh
+# AUTHOR: supperthomas
+
+if git rev-parse --verify HEAD >/dev/null 2>&1
+then
+	against=HEAD
+else
+	# Initial commit: diff against an empty tree object
+	against=$(git hash-object -t tree /dev/null)
+fi
+
+# We only filter the file name with c or cpp file.
+changed_files=$(git diff-index --cached $against | \
+	grep -E '[MA]	.*\.(c|cpp|cc|cxx)$' | cut -d'	' -f 2)
+
+
+if [ -n "$changed_files" ]; then
+	cppcheck --enable=warning,performance,portability --inline-suppr --error-exitcode=1 --platform=win64 --force $changed_files
+	err=$?
+	if [ $err -ne 0 ]; then
+		echo "[rt-thread][cppcheck] we found a obvious fault, please fix the error then commit again"
+		exit $err
+	else
+		echo "[rt-thread][cppcheck] cppcheck ok."
+	fi
+fi
+
+# We only filter the file name with c or cpp or h file.
+# astyle only astyle the added file[because of code reivewer], if you want change modify file, please use [MA]
+changed_files=$(git diff-index --cached $against | \
+	grep -E '[MA]	.*\.(c|cpp|h)$' | cut -d'	' -f 2)
+
+
+if [ -n "$changed_files" ]; then
+	astyle --style=allman --indent=spaces=4 --indent=spaces=4 --indent=spaces=4 --pad-header --pad-header --pad-header --align-pointer=name --lineend=linux --convert-tabs --verbose  $changed_files
+	err=$?
+	if [ $err -ne 0 ]; then
+		echo "[rt-thread][astyle] we found a obvious fault, please fix the error then commit again"
+		exit $err
+	else
+		echo "[rt-thread][astyle] astyle file ok"
+	fi
+fi
+
+
+# We only filter the file name with c or cpp file.
+changed_files=$(git diff-index --cached $against | \
+	grep -E '[MA]	.*\.(c|cpp|h)$' | cut -d'	' -f 2)
+# formatting check
+# https://github.com/mysterywolf/formatting
+# formatting cmd ref https://github.com/supperthomas/git_auto_script
+if [ -n "$changed_files" ]; then
+	formatting $changed_files
+	echo "[rt-thread] formatting $changed_files is ok"
+	git add $changed_files
+	exit 0
+fi
+exit 0
+

+ 6 - 0
.hooks/readme.md

@@ -0,0 +1,6 @@
+# How to use git hook
+
+## SDK install 
+
+Please use cmd `git config --local core.hooksPath .hooks` for git hooks local.
+