Run Android Lint pre-push

Git hook是一些在$GIT_DIR/hooks目录的脚本,在被特定的事件(certain points)触发后被调用.

        我们可以在push代码前,调用android lint检查代码,若lint检查结果不符合规范,则中断push操作,强制要求fix Lint Error.


如果要实现上述结果,我们需要做些什么?

 

第一:升级Git版本

Git hooks貌似是在git version 1.8上才支持的.

我们在命令行执行git –version,貌似大家现在都是1.7

升级方法网上有,比较简单

我没有仔细研究升级方法,用了网上最笨的升级方法,依次执行下述命令即可(耗时、网络):

sudo add-apt-repository ppa:pdoes/ppa

sudo add-apt-repository ppa:git-core/ppa

sudo apt-get update

sudo apt-get install git

 

 

第二:添加hook脚本

在$GIT_DIR/hooks目录中,添加一个pre-push的bash脚本文件,在其中写上对应脚本,

则在每次执行push操作前,均会先执行pre-push脚本文件

 

第三:整理lint规则

如果我们直接lint.,则会检查所有规则,耗时长,也无此必要,所以,我们需要整理一份需要特别check的规则。


Hook脚本的本质就是一个bash脚本,一个简单的pre-push脚本如下

#!/bin/bash
#

echo "Run Android Lint, Please Wait..."

#IS_RUN_ANDROID_LINT=$(lint .)

echo 
echo "Run Android Lint Result:"

ERROR_COUNT=0;
WARNINGS_COUNT=0;

if [[ $IS_RUN_ANDROID_LINT =~ ([0-9]{1,4})( errors)(\, )([0-9]{1,4})( warnings) ]];then
ERROR_COUNT=${BASH_REMATCH[1]}
WARNINGS_COUNT=${BASH_REMATCH[4]}

echo "We Found "$ERROR_COUNT" Lint Errors And "$WARNINGS_COUNT" Lint Warnings."

	if [ $ERROR_COUNT -gt 0 ];then
		#have lint error
		echo "Please Fix the "$ERROR_COUNT" Errors"
		#exit 1
	else
		#no error, just warning
		echo
	fi
else
echo "No Android Lint issues found."
fi
echo "Run <span style="font-family: Arial, Helvetica, sans-serif;">Android </span>Lint: Yes"
echo



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章