#!/bin/bash
while getopts m: OPT ; do
case $OPT in
m) message="$OPTARG" ;;
\?) echo "Usage : -m 'コミットメッセージ' パス" 1>&2
exit 1 ;;
esac
done
# オプション部分を切り捨てる。
shift `expr $OPTIND - 1`
if [ "$1" ]; then
path=$@
else
# パスの指定がなければ、カレントフォルダ以下を
path='./'
fi
if [ "$message" ]; then
# 新規ファイルは svn add
addstr=`svn st $path | grep -E '^\?' | sed -e s/"^?[ ]*"//`
if [ $addstr ]; then
svn add $addstr
fi
# syntax error がないかを確認
for f in `svn st $path | grep -E "(php|phtml)" | sed -e s/"^.[ ]*"//`;do
php -l $f
done
str=`svn st $path | grep -E "(php|phtml)" | sed -e s/"^.[ ]*"//`
# svn diff を表示
svn diff $str
echo $str"をコミットしますか : ";read y
if [[ $y = 'y' ]]; then
echo "svn ci -m $message `echo $str`"
svn ci -m "$message" `echo $str`
fi
else
echo "コミットコメントを入力してください"
exit 1
fi
2012年6月30日土曜日
[shell][svn]コミット前にすべてのファイルのシンタックスチェック
仕事で、phpを使うときがある。
自動テストフレームワークがないので、目視チェックのテスト。
とは言え、最低限シンタックスエラーだけは出さないようにしなければならない。
というわけで、 svn commit する前に phplintをしてくれるようにしたスクリプト。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿