p4 extension

このコマンドを使用して、Helix Core Serverの拡張機能のメカニズムを管理することができます。

構文規則

p4 extension --sample myExt

p4 extension --package myExt

p4 extension --install myExt.p4-extension [--yes]

p4 extension --delete [--revision] [--path] ExampleInc::myExt [--yes]

p4 extension --configure ExampleInc::myExt [--revision] [-o]

p4 extension --configure ExampleInc::myExt[--revision] [-i] --name ExampleInc::myExt

p4 extension --run ExampleInc::myExt [ arguments ]

p4 extension --list --type type

説明

p4 extensionコマンドを使用して、Helix Core Server拡張機能のインストール、バージョン化機能、設定を管理することができます。

拡張機能は、ユーザが定義したロジックでHelix Coreの一部をカスタマイズするための手段です。拡張機能は、Helix Coreサーバ内で機能するサードパーティ製のコードとアセットから構成される自己完結型パッケージです。拡張機能の用途としては、サブミットされる変更内容の確認、フォームの検証、外部認証、外部ジョブの修正の統合、外部アーカイブの統合、コマンドポリシーの作成などがあります。拡張機能を登録できるイベントの一覧については、p4 help triggersコマンドを実行して、トリガタイプのリストを表示してください。

拡張機能は、外部のプロセスに依存することなく、Helix Coreサーバ上でネイティブに実行されるため、自動複製機能とプログラマティックAPIを持つバージョン管理された移植可能なランタイムを作成することができます。

拡張機能とトリガを共存させることができますが(トリガについては、「p4 triggers」を参照)、拡張機能は機能的な点でトリガよりも優れています。

拡張機能はHelix Coreサーバ内でバージョン管理され、.p4-extensionsという特殊なディポにデフォルトで保存されます。この拡張機能ディポにアクセスできるのは、スーパーユーザだけです。また、アクセスする場合は、読み取り専用コマンドを使用する必要があります。拡張機能ディポは自動的に作成されます。

拡張機能のインストールまたはアップグレードを行うと、インストール前後のバージョン情報が記録されたチェンジリストが作成されます。

拡張機能を使用して、ユーザが実行するカスタムコマンドを実装することができます。以下に例を示します。

p4 extension --run myInstanceConfig validateFileSize pathToFile

validateFileSize」はカスタムコマンドを表し、「pathToFile」は、カスタムコマンドに関する引数を表しています。

設定について

拡張機能をインストールしたら、設定を行う必要があります。

最初に、スーパーユーザがp4 extension --configure extNameコマンドを実行して、拡張機能の設定に関する各種のグローバル情報(拡張機能のインスタンスを作成できるユーザグループのリストや、拡張機能の実行時間の制限など)を指定します。

次に、スーパーユーザが--configureオプションと--nameオプションを組み合わせて使用して、拡張機能の名前付きインスタンスを作成します。これにより、拡張機能がパラメータ化され、特定の設定で実行できるようになります。--nameオプションには、作成または編集する設定の名前を指定し、--configureオプションには、拡張機能の名前を指定します。複数の名前付きインスタンスを作成することができます。

p4 extensionコマンドを実行するには、p4 protectコマンドで付与されるsuperアクセス権限が必要になります。拡張機能のグローバル設定のExtAllowedGroupsフィールドで指定されたグループにメンバーとして属しているユーザと、ディポまたはリポジトリを所有しているユーザは、自分が管理するサーバのセクション上で機能するファイルベースの拡張機能のインスタンスの作成や設定を行うことができます。

拡張機能について詳しくは、「p4 help serverextensionintro」と『Helix Core Extensions開発者ガイド』を参照してください。

命名規則

拡張機能は、完全修飾名で参照されます。完全修飾名は、名前空間と名前を組み合わせたものです。オプションとして、サーバにインストールされている拡張機能のリビジョン(拡張コードのバージョンではなく)を完全修飾名に含めることもできます。例えば、名前空間がExampleIncで名前がExtNameである場合、完全修飾名はExampleInc::ExtNameとして参照されます。

オプション

--sample

このオプションを指定すると、ディレクトリ内に新しい拡張機能のスケルトンが作成されます。そのスケルトンに、作成する拡張機能の名前を付けます。「命名規則を参照してください。

p4 extension --sample myExt

これにより、--packageオプションを使用できるようになります。

--package

--packageオプションを指定すると、指定したファイルディレクトリから、パッケージ化された拡張機能ファイルが作成されます。以下に例を示します。

p4 extension --package myExt

指定したディレクトリと同じ名前でファイルが作成されますが、ファイル名の最後に「.p4-extension」という拡張子が付加されます。拡張機能をインストールするには、--installオプションを使用して拡張機能をパッケージ化する必要があります。

--yes
注意

拡張機能のインストールや削除を実際に行うには、--yesオプションを使用する必要があります。--yesを指定せずにp4 extensionコマンドを実行した場合、どのような処理が実行されるのかが表示されるだけで、実際にインストールや削除が行われるわけではありません。

ヒント

-yオプションと--yesオプションは同じです。

--install

このオプションを使用して、クライアントの拡張機能ファイルの名前を指定します。コマンドを実行すると、このファイルがサーバにインストールされます。パッケージ化された拡張機能ファイルには、「p4-extension」という拡張子が付加されます。

以下に例を示します。

p4 extension --install myExt.p4-extension --yes

注意

拡張機能のインストールや削除を実際に行うには、--yesオプションを使用する必要があります。--yesを指定せずにp4 extensionコマンドを実行した場合、どのような処理が実行されるのかが表示されるだけで、実際にインストールや削除が行われるわけではありません。

--name

作成または変更するインスタンス設定の名前。

--revision

このオプションを使用して、設定を行う拡張機能のディポバージョンを指定します。 デフォルト値は、最新リビジョンです。このオプションは、 --configureオプションに適用されます。

このオプションは、--nameオプションが指定されているかどうかに関係なく、--configureオプションに適用されます。

--configure

拡張機能は、設定が完了するまで有効にはなりません。

デフォルトのグローバル設定は、次のようになります。

p4 extension --configure ExampleInc::myExt

このグローバル設定は、以下のようになっている場合があります。

p4 extension --configure myCompany::fileSizeCheck

対応するインスタンス設定は、以下のようになります。

p4 extension --configure myCompany::extName --name Release1.0-fileSizeCheckInst

登録するイベントに応じて、1つの拡張機能で複数の設定を 構成することができます。 拡張機能の各設定で、その拡張機能の異なるバージョンを 指定することができます。

--list

このオプションを指定すると、インストールされている拡張機能と そのインスタンスが表示されます。

すべての拡張機能を一覧表示するには、以下のコマンドを実行します。

p4 extension --list --type=extensions

すべてのインスタンス設定を一覧表示するには、以下のコマンドを実行します。

p4 extension --list --type=configs

--type=configs--type=globalまたは--type=instanceに置き換えると、結果をフィルタリングすることができます。

--path=<path>を追加すると、パスベースのインスタンス設定のうち、パス引数が指定の<path>に一致するインスタンス設定だけが出力されます。

p4 extension --list --type=extensionsコマンドを実行すると、拡張機能の設定状態が出力として表示されます。

  • グローバル設定が必要な状態

  • 拡張機能を有効にするためのインスタンス設定が必要な状態
  • グローバル設定とインスタンス設定が有効になっている状態

    注意

    拡張機能を有効にするには、その拡張機能で、グローバル設定と1つ以上のインスタンス設定が有効になっている必要があります。

--delete

このオプションを指定すると、拡張機能または拡張機能の設定情報(あるいはその両方)が削除されます。

  • 名前付きインスタンスの設定を削除する場合は、以下のように--nameオプションを指定します。
    p4 extension --delete myCompany::fileSizeCheck
    --name=fileSizeCheck-instance --yes
  • 拡張機能のすべてのバージョンと設定を削除する場合は、以下のように
    --name
    オプションを省略します。
    p4 extension --delete myCompany::fileSizeCheck
  • 1つの仕様リビジョンとそのインスタンスを削除する場合は、以下のように
    --revision
    オプションを指定します。
    p4 extension --delete myCompany::fileSizeCheck
    --name=fileSizeCheck-instance --revision=2 --yes

  • 指定したパスに登録されているファイルベースのインスタンスを削除する場合は、以下のように指定します。

    p4 extension --delete ExampleInc::extD1
    --path=//depot/... --yes

注意

拡張機能のインストールや削除を実際に行うには、--yesオプションを使用する必要があります。--yesを指定せずにp4 extensionコマンドを実行した場合、どのような処理が実行されるのかが表示されるだけで、実際にインストールや削除が行われるわけではありません。

--run

このオプションにより、指定した拡張機能が実行されます。

拡張機能を仕様して、カスタムのエンドユーザコマンドを実装することができます。このカスタムコマンドを実行するには、--runオプションでインスタンスの設定名を指定し、拡張機能で必要になるオプションの引数を指定します。

使用上の注意点

ファイル引数でリビジョン指定子を使用できるか? ファイル引数でリビジョン範囲を使用できるか? 最低限必要なアクセスレベル

適用外

適用外

  • super

  • 拡張機能のグローバル設定のExtAllowedGroupsフィールドで指定されたグループにメンバーとして属しているユーザと、ディポまたはリポジトリを所有しているユーザは、自分が管理するサーバのセクション上で機能するファイルベースの拡張機能のインスタンスの作成や設定を行うことができます。