我正在编写一个简单的 git 钩子来确保所有提交的代码都被更正缩进。我们使用 uncrustify 来缩进我们的代码和这个我们在每次提交之前运行的脚本
find -name "*.[hm]" -exec uncrustify -c uncrustify.cfg {} --replace --no-backup \;
如果代码不是unrustified,我正在寻找一种拒绝推送的方法。我可以尝试将文件的原始版本与未受信任的版本进行比较,但这似乎很慢,因为我必须生成文件的新版本,检查并在检查后删除。
我想知道 uncrustify 是否有一些隐藏开关只是为了测试文件是否应该被格式化。
谢谢。
这是我用来测试文件是否已经缩进的函数
function isIndented() {
FILE1=$1
uncrustify -c uncrustify.cfg "$FILE1" --mtime
FILE2=${FILE1}.uncrustify
if cmp -s "$FILE1" "$FILE2"
then
RESULT=1
else
RESULT=0
fi
rm "$FILE2"
echo $RESULT
}