2012年6月30日土曜日

[shell]特定フォルダ以下のファイルを自動add&commit

仕事でsvnを使うようになった。
フォルダによっては、svn addしたファイルは、そのままコミットしたいときがある。
たとえば画像フォルダは、基本的に自分の環境が最新状態なので、つねに最新版をコミットしてくれればいい。
そんなときは、このスクリプト。
あらたに追加されたファイルは自動で「svn add」して、変更があったファイルをコミットする。
#!/bin/bash
# Usage : ciimage.sh "コメント名"
if [ "$1" ]; then
    PROJ="/home/amachi/project"
    addstr=`svn st $PROJ/hoge/image/ | grep -E '^\?' | sed -e s/"^?[ ]*"//`
    addstr="$addstr `svn st $PROJ/fuga/fuga/image | grep -E '^\?' | sed -e s/"^?[ ]*"//`"

    addstr=`echo $addstr | sed 's/^ *//g'`
    if [ -n "$addstr" ];then
        svn add $addstr
    fi

    #念のため、phpファイルをはじく
    str=`svn st $PROJ/hoge/image/ | grep -vE "php" | sed -e s/"^.[ ]*"//`
    str="$str `svn st $PROJ/fuga/fuga/image | grep -vE "php" | sed -e s/"^.[ ]*"//`"

    str=`echo $str | sed 's/^ *//g'`
    if [ -n "$str" ];then
        svn ci -m "$1" $str
        echo 'commited!!'
    else
        echo 'コミットするファイルがありませんでした'
    fi
else
    echo "コミットコメントを入力してください"
    exit 1
fi

0 件のコメント:

コメントを投稿