一旦ログメッセージを入力すると、bug ID などの特定の内容を調べるために そのメッセージを評価することができます。ログメッセージを検証するための プログラムを指定するために verifymsg ファイルを使用することがで きます。このプログラムは入力されたメッセージに必要なフィールドがあるか どうかを調べる簡単なスプリプトでも良いでしょう。
verifymsg ファイルは、ログメッセージの雛型を指定するために使う ことのできる rcsinfo ファイルと一緒に使用されたときにとても役に 立つことが多いです。
verifymsg ファイルは正規表現とコマンド行の雛型から成ります。雛 型はプログラム名を含んでいなければならず、任意の数の引数を取ることがで きます。現在のログメッセージ雛型ファイルへのフルパスが雛型の最後に追加 されます。
一つ注意しなければならないのは、‘ALL’ キーワードは使えないという ことです。一行以上合致した場合、最初のものが使われます。これはディレク トリで既定の検証スクリプトを指定して、サブディレクトリで上書きするとき に役に立ちます。
リポジトリ名がこのファイルのどの正規表現にも合致しなければ、 ‘DEFAULT’ が指定されていると、それが使用されます。
検証スクリプトはログメセージを変更できないことに注意してください。単に 受け入れるか拒否するかのどちらかです。
以下は、verifymsg ファイルのちょっとしたばかげた例と、それに対 応する rcsinfo ファイル、ログメッセージの雛型と検証スクリプトで す。まず、ログメッセージの雛型です。常に bug-id 番号をログメッセージの 最初の行に記録します。ログメッセージの残りのテキストは自由に書いたもの です。以下の雛型ファイルは /usr/cvssupport/tc.template にありま す。
BugId:
スクリプト /usr/cvssupoort/bugid.verify はログメッセージの評価 に使われます。
#!/bin/sh # # bugid.verify filename # # Verify that the log message contains a valid bugid # on the first line. # if head -1 < $1 | grep '^BugId:[ ]*[0-9][0-9]*$' > /dev/null; then exit 0 else echo "No BugId found." exit 1 fi
verifymsg ファイルには以下の行があります:
^tc /usr/cvssupport/bugid.verify
rcsinfo ファイルには以下の行があります:
^tc /usr/cvssupport/tc.template