まず、コマンド内のすべてを詰め込もうとしないでくださいmktrtype
。トリガー定義は、必要なすべてのチェックをプログラムできるスクリプト(すべてのユーザーがアクセス可能)を呼び出す必要があります。
このpreopチェックイントリガーで、特定の条件が満たされない場合に停止メッセージを表示する必要があるスクリプトの例を見ることができます。
これは、エラー関数に基づいています。
########################################################################
# SUBROUTINE ERROR
#
sub error {
close(WORKFILE);
unlink($workFile);
my ($message) = @_;
die ($message."\nUnable to continue checkin ...\n");
}
スクリプトの任意の時点で、次のように呼び出します。
&error("$message");
これにより、ユーザーにエラーメッセージが表示されている間、チェックインが停止して続行します。
これは、次のコマンドでトリガーとして宣言するスクリプトの一部です。
cleartool mktrtype -c "RCS Keyword substitution in a source file" -element -all -preop checkin -eltype text_file -execwin "ccperl \\mw-ddiebolt\triggers\keyword_subst.perl" -execunix "Perl /net/titeuf/triggers/keyword_subst.perl" KEYWORD_SUBST
これが高度すぎる場合、この他のスクリプトはexit
次のように使用します。
sub checkUserName {
my $user = shift(@_);
my $currentUser = uc($ENV{CLEARCASE_USER});
if ($user !~ m/^($currentUser)/) {
`clearprompt proceed -mask proceed -type error -prompt \"Can't create label f
exit 1;
}
exit 0;
}
それはあなたと同じであるはずです:
system("clearprompt proceed -mask proceed -type error -prompt \"$text\"");
exit 1;