Helix Coreサーバ管理者ガイド: 基本 (2019.1)

トリガスクリプト変数

トリガスクリプト変数を使用して、データをトリガスクリプトに渡すことができます。すべてのデータは文字列として渡されます。こうした文字列を適切に解釈または使用することが、トリガの役割です。

STDINおよびSTDOUTを使用してサーバおよびトリガ間で通信を行うこともできます。詳細については、「トリガとサーバ間の通信」を参照してください。

maxError…​変数は、オペレーティングシステムのリソースに関する問題などが原因で、サーバでコマンドを実行できなかった状況を示します。また、クライアント側のエラーがいつもサーバに表示されるとは限らず、maxErrorカウントに計上されない場合があることについても注意してください。

terminated変数は、コマンドが途中で終了したかどうかを示し、termReason変数は、コマンドが途中で終了した理由を示します。

Note

未知の変数の処理方法が変更されています。以前のバージョンでは、未知の変数はトリガの起動時に除外されていました。現在のバージョンでは、未知の変数は除外されません。これによってトリガ引数の配列が維持されるとともに、使用できると想定されているデータが実際にはそうではない場合にトリガ作成者が問題を解決しやすくなっています。

引数 説明 適用できるトリガタイプ

%action%

null、またはチェンジリストかジョブに対して行われたアクションを反映する文字列です。

例えば、「pending change 123 added」または「submitted change 124 deleted」は、changeフォームに対する%action%の有効な値で、「job000123 created」または「job000123 edited」は、jobフォームに対する%action%の有効な値です。

form-commit

%archiveList% プルするファイルが含まれているファイル名 pull-archive

%argc%

コマンド引数カウントです。

archiveトリガを除くすべてのタイプ

%args%

コマンド引数文字列です。

archiveトリガを除くすべてのタイプ

%argsQuoted%

コマンド引数文字列です。この文字列の内容は、複数のコマンド引数をパーセントエンコーディングし、カンマ区切りのリストとして配列したものです。

archiveトリガを除くすべてのタイプ

%changelist%, %change%

サブミットしようとしているチェンジリストの番号です。短縮形%change%%changelist%と同様に機能します。

change-submitトリガは作業中チェンジリスト番号を渡します。change-commitトリガはコミットされたチェンジリストの番号を受け取ります。

shelve-commitトリガまたはshelve-deleteトリガは、シェルフのチェンジリスト番号を受け取ります。

change-submit
push-submit
change-content
push-content
change-commit
push-commit
fix-add
fix-delete
form-commit
shelve-commit
shelve-delete

%changeroot%

サブミットされたファイルのルートパスです。

                            change-commit
push-commit
                        

%client%

トリガを起動させるユーザのクライアントワークスペース名です。

すべて

%clientcwd%

クライアントの現在の作業ディレクトリです。

archiveトリガを除くすべてのタイプ

%clienthost%

ユーザのワークステーションのホスト名(プロキシ、ブローカ、レプリカ、エッジサーバを経由して接続する場合も含む。)

すべて

%clientip%

ユーザのワークステーションのIPアドレス(プロキシ、ブローカ、レプリカ、エッジサーバを経由して接続する場合も含む。)

すべて

%clientprog%

ユーザのクライアントアプリケーション名です。P4V、P4Winなど。

すべて

%clientversion%

ユーザのクライアントアプリケーションのバージョンです。

すべて

%command%

コマンド名です。

archiveトリガを除くすべてのタイプ

%depotName% リポジトリが格納されているグラフディポです。
graph-push-start
graph-push-reference
graph-push-reference-complete
graph-push-complete
%email% ユーザの電子メールアドレスです。詳細については、「多要素認証(MFA)をトリガする」を参照してください。
auth-pre-2fa
auth-init-2fa
auth-check-2fa

%file%

ディポのMap:フィールドに基づくアーカイブファイルのパスです。Map:フィールドの値がP4ROOTからの相対パスである場合、%file%はサーバ側のP4ROOTからの相対パスです。Map:フィールドの値が絶対パスである場合、%file%はサーバ側の絶対パスです。

archive

%firstPushedChange%

最初の新しいチェンジリストの番号です。

詳細については、「プッシュコマンドおよびフェッチコマンド用のその他のトリガ」を参照してください。

command

%formfile%

一時フォーム仕様ファイルのパスです。inトリガまたはoutトリガでフォームを編集するには、このファイルを上書きします。saveタイプのトリガとdeleteタイプのトリガの場合、このファイルは読み取り専用になります。

form-commit
form-save
form-in
form-out
form-delete

%formname%

フォーム名です(例えば、ブランチ名やチェンジリスト番号)。

form-commit,
form-save
form-in
form-out
form-delete

%formtype%

フォームタイプです(例えば、branchchangeなど)。

form-commit,
form-save
form-in
form-out
form-delete
%fullname% ユーザのフルネームです。詳細については、「多要素認証(MFA)をトリガする」を参照してください。
auth-pre-2fa
auth-init-2fa
auth-check-2fa

%groups%

ユーザが所属しているグループのリスト(スペース区切り)です。

archiveトリガを除くすべてのタイプ

%host% ユーザのホストのIPアドレスです。詳細については、「多要素認証(MFA)をトリガする」を参照してください。
auth-pre-2fa
auth-init-2fa
auth-check-2fa

%intermediateService%

ブローカやプロキシを示します。

archiveトリガを除くすべてのタイプ

%jobs%

ジョブ番号の文字列です。この変数は、p4 fixコマンドで指定されているジョブ番号1つか、p4 submitまたはp4 changeフォーム中のJobs:フィールドで追加(または削除)されたジョブ番号1つにつき、1つの引数に展開されます。

fix-add,
fix-delete

%lastPushedChange%

最後の新しいチェンジリストの番号です。

詳細については、「プッシュコマンドおよびフェッチコマンド用のその他のトリガ」を参照してください。

command

%maxErrorSeverity%

emptyerrorwarningのいずれかです。

archiveトリガを除くすべてのタイプ

%maxErrorText%

エラー番号とエラーメッセージです。

archiveトリガを除くすべてのタイプ

%maxLockTime%

ユーザ指定の値です。許容可能な最長のデータベースロック時間を、ミリ秒単位で指定します。この変数が設定されている場合、ユーザがこの値に関するグループ設定を上書きしたということを意味します。

archiveトリガを除くすべてのタイプ

%maxResults%

ユーザ指定の値です。コマンド実行中にバッファするデータ量を指定します。この変数が設定されている場合、ユーザがこの値に関するグループ設定を上書きしたということを意味します。

archiveトリガを除くすべてのタイプ

%maxScanRows%

ユーザ指定の値です。1度の操作中にスキャンされる最大行数を指定します。この変数が設定されている場合、ユーザがこの値に関するグループ設定を上書きしたということを意味します。

archiveトリガを除くすべてのタイプ

%method% list-methodsの認証方法です(「unknown」に設定できます)。詳細については、「多要素認証(MFA)をトリガする」を参照してください。  
%newValue% 詳細については、「タイプグラフのディポのトリガ」を参照してください。 graph-push-reference

%oldchangelist%

チェンジリストの番号がサブミット時に変更されると、この変数の値は古いチェンジリスト番号になります。

change-commit
push-commit
%oldValue% 詳細については、「タイプグラフのディポのトリガ」を参照してください。 graph-push-reference

%op%

readwritedeleteのいずれかの操作を示します。

archive

%peerhost%

プロキシ、ブローカ、レプリカ、またはエッジサーバを通じてコマンドが送信された場合、プロキシ、ブローカ、レプリカ、エッジサーバのうちいずれかのホスト名を示します。(コマンドが直接送信された場合、%peerhost%%clienthost%と一致します。)

すべて

%peerip%

プロキシ、ブローカ、レプリカ、またはエッジサーバを通じてコマンドが送信された場合、プロキシ、ブローカ、レプリカ、エッジサーバのうちいずれかのIPアドレスを示します。(コマンドが直接送信された場合、%peerip%%clientip%と一致します。)

すべて

%P4PORT%

クライアントが接続するホストのポートです。クライアントが仲介を通じてサーバに接続する場合、この変数は仲介のポート番号を保持します。仲介なしで直接サーバに接続する場合、この変数は%serverAddress%変数と同じ値を保持します。

auth-check-sso(クライアント側スクリプトの場合のみ)

%pusher% プッシュでクレジットを付与されたユーザです。詳細については、「タイプグラフのディポのトリガ」を参照してください。
graph-push-start
graph-push-reference
graph-push-reference-complete
graph-push-complete

%quote%

二重引用符として使用する文字です。

すべて

%reference% 詳細については、「タイプグラフのディポのトリガ」を参照してください。

graph-push-reference

%refFlags%
%refType%
%repo%

拡張子が.gitであるリポジトリです。または%repoName%と同じです。

graph-push-start
graph-push-reference
graph-push-reference-complete
graph-push-complete
%repoName%

リポジトリの名前です。詳細については、「タイプグラフのディポのトリガ」を参照してください。

%rev%

アーカイブファイルのリビジョンです。

archive

%scheme% init-authで設定した認証スキームです(「unknown」に設定できます)。詳細については、「多要素認証(MFA)をトリガする」を参照してください。 auth-init-2fa

%serverAddress%

Helix CoreサーバのIPアドレスおよびポート番号です。P4LOGINSSOで指定されているクライアント側スクリプトのコンテキストにおいてのみ渡すことができます。

auth-check-sso(クライアント側スクリプトの場合のみ)

%serverhost%

Helix Coreサーバのホスト名です。

すべて

%serverid%

Helix Coreサーバserver.idの値です。詳細については、『Helix Core P4コマンドリファレンス』のp4 serveridを参照してください。

すべて

%serverip%

サーバのIPアドレスです。

すべて

%servername%

Helix CoreサーバP4NAMEの値です。

すべて

%serverport%

Helix Coreサーバのトランスポート、IPアドレス、ポート番号です。形式はprefix:ip_address:portです。

prefix にはssltcp6ssl6のいずれか1つが使用されます。つまり、コマンドp4 -p %serverport%は、サーバ側で使用されている接続タイプにかかわらず、サーバへの接続に使用できます。

すべて

%serverroot%

Helix CoreサーバP4ROOTディレクトリです。

すべて

%serverservices%

サーバの役割を指定する文字列です。以下のうちいずれか1つをとります。

  • standard
  • replica
  • broker
  • proxy
  • commit-server
  • edge-server
  • forwarding-replica
  • build-server
  • P4AUTH
  • P4CHANGE

archiveトリガを除くすべてのタイプ

%serverVersion%

コマンドが早期に終了した場合、中断したサーバのバージョン文字列を示します。中断の理由は%termReason%の値によって示されます。

archiveトリガを除くすべてのタイプ

%specdef%

該当フォームのスペック行に展開されます。

form

%submitserverid%

分散インストール環境ではない場合、%submitserverid%の値は常に空白になります。

分散インストールでは、すべての変更トリガにおいて以下のことが挙げられます。

  • コミットサーバ上でサブミットが実行された場合、%submitserverid%%serverid%と等しい。
  • エッジサーバ上でサブミットが実行された場合、%submitserverid%%serverid%と等しくない。この場合、%submitserverid%はエッジサーバのサーバIDを持ちます。

コミットサーバとエッジサーバの間で転送中のレプリカが存在する場合は、%submitserverid%は実際には転送中のレプリカのサーバIDを持ちます。

Helix Core P4コマンドリファレンス』のp4 serveridを参照してください。

change-submit
change-content
change-commit

push-* トリガには使用できません。

%terminated%

値が0である場合、コマンドが完了したことを示します。値が1である場合、コマンドが完了しなかったことを示します。

 

%termReason%

早期中断の理由を示します。以下のうちいずれか1つをとる可能性があります。

  • 'p4 monitor terminate'
  • client disconnect
  • maxScanRows
  • maxLockTime
  • maxResults

%serverVersion%も参照してください。

archiveトリガを除くすべてのタイプ

%token% init-authフェーズで保存されたトークンです(空になっている場合があります)。詳細については、「多要素認証(MFA)をトリガする」を参照してください。 auth-init-2fa
%triggerdir% 外部ファイル転送のためのトリガでtmpファイルに使用されているPull.trigger.dir edge-content

%triggerMeta_action%

トリガ起動時に実行するコマンドです。トリガ定義の最後のフィールドです。ディポからスクリプトを実行する場合に限って設定してください。

archiveトリガを除くすべてのタイプ

%triggerMeta_depotFile%

トリガ定義の第3のフィールドです。このフィールドの意味はトリガタイプによって異なります。change-submitトリガの場合、トリガと一致すべきパスです。form-outトリガの場合、トリガに適用されるべきフォームタイプです。このフィールドの詳細については、該当するトリガタイプの解説を参照してください。

archiveトリガを除くすべてのタイプ

%triggerMeta_name%

トリガ定義の第1のフィールド、すなわちトリガ名です。ディポからスクリプトを実行する場合に限って設定してください。

archiveトリガを除くすべてのタイプ

%triggerMeta_trigger%

トリガ定義の第2のフィールド、すなわちトリガタイプです。ディポからスクリプトを実行する場合に限って設定してください。

archiveトリガを除くすべてのタイプ

%user%

トリガを起動させるユーザのHelixサーバユーザ名です。

すべて