[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cvs-ml 157] Re: メール送信



馬場@京大宇宙物理 です。

 Date: Mon, 26 Jul 1999 17:49:37 JST
 From: "gotoh" <goto@akane.tis.co.jp>
 Subject: [cvs-ml 156] メール送信

 > >ALL (echo ""; id; echo %{sVv}; date; cat) | mail goto@akane.tis.co.jp
 > おかげさまで、メールが無事届きました。
 > ありがとうございました。
 > しかし、記述されたスクリプトの意味は、分かってません。
 > 解説していただけると、助かるのですが・・・。

CVSROOT/loginfo のコメント文中にある通りです。末尾に添付します。

 > log_accum ?

log_accum は CVS のソースコードの contrib/ ディレクトリ中にあります。

 > モジュール毎に?

モジュール毎にってのは、上の行の ALL の変わりにモジュール名とかディ
レクトリ名を書くなどすれば、場合分けができるということです。
$CVSROOT/foo/ ディレクトリ以下は A さん、$CVSROOT/bar/ 以下は B さん
のところに通知メールが行くようにするとすると、以下のようにできます。

^foo (echo ""; id; echo %{sVv}; date; cat) | mail (Aさんのaddress)
^bar (echo ""; id; echo %{sVv}; date; cat) | mail (Bさんのaddress)

簡単な場合分けで良いならば、たぶんこの程度で十分だとおもいます。


 > ># 私は自分で作ったツールでメール投げるようにしてます。
 > どのようなツールを作成されたのですか?
 > よろしかったら詳しく教えていただけませんか?

機能的には log_accum とほぼ同じです。あとはまあ、好みに合うように
細かいところにちょいちょい手を入れただけです。FreeBSD のリポジトリ
の log_accum などはなんだかすごく複雑に改造されていて参考にしよう
としたのですが、ちょっと細かすぎるかなーと感じました。自作なおかげ
で、いろいろヘンなところが残ってたりしますが、面倒くさくなったので
そのままほったらかしています。

# ほんとは、loginfo 中の %u とかで commit した CVS アカウント名が
# 欲しかったんですが、pserver で real ユーザにマップしていると、
# real ユーザ名しか取れず、CVS アカウント名が縮退してしまうので
# やむを得ず場当たり的にちょろちょろいじったというところです。
--
馬場  肇 ( Hajime BABA )            E-mail: baba@kusastro.kyoto-u.ac.jp
京都大学理学部宇宙物理学教室 博士後期課程
--


以下はデフォルト状態での loginfo です。

# The "loginfo" file controls where "cvs commit" log information
# is sent.  The first entry on a line is a regular expression which must match
# the directory that the change is being made to, relative to the
# $CVSROOT.  If a match is found, then the remainder of the line is a filter
# program that should expect log information on its standard input.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name ALL appears as a regular expression it is always used
# in addition to the first matching regex or DEFAULT.
#
# You may specify a format string as part of the
# filter.  The string is composed of a `%' followed
# by a single format character, or followed by a set of format
# characters surrounded by `{' and `}' as separators.  The format
# characters are:
#
#   s = file name
#   V = old version number (pre-checkin)
#   v = new version number (post-checkin)
#
# For example:
#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog
# or
#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog