PCCPluginSys commandsLink
PCCPluginSysで使用できるコマンドを解説します。
コマンドはすべて大文字で記述されていますが、小文字であったり混在していても問題なく動きます。
EXECLink
EXEC [options...] <command> [args...]
概要Link
外部ファイルを実行します。
インストーラーを実行する場合、LOCKを行ってください。
内容はcmd.exeに渡されるため、copyなどの組み込みコマンドも問題なく使用できます。
オプションで指定しなかった場合、実行ディレクトリは実行しようとしたファイルと同一になります。
出力は${tempdir}\executer.logにリダイレクトされます。
Note
/NOFAILが指定されていない限り、実行したプログラムが0以外のコードで終了したときエラー扱いになります。
自動補完Link
指定するファイルによっては、実行内容にいくつかの自動補完が行われます。
.ps1Link
.ps1ファイルを指定した場合、ファイル名の前に以下のようなコマンドが付与されて実行されます。
powershell.exe -NonInteractive -ExecutionPolicy Bypass -File
有効なオプションLink
/ADMINLink
指定すると管理者権限で実行します。
ネットワークドライブ上のファイルを実行しようとした場合、自動的にtempdirにコピーしてから実行します。
/REPODIRLink
repodirを実行ディレクトリとして実行します。
/TEMPDIRLink
tempdirを実行ディレクトリとして実行します。
/DATADIRLink
datadirを実行ディレクトリとして実行します。
/NOFAILLink
終了コードが0以外でもエラーとして扱いません。
/RAWLink
自動補完を無効にします。
例
repodir: B:\PCCPlugin\unofficial\example
tempdir: C:\Users\user\Downloads\PCCPlugin\example
プラグインコマンド: EXEC /ADMIN /TEMPDIR ${plugin_repodir}\install.ps1
実行されるコマンド: powershell.exe -NonInteractive -ExecutionPolicy Unrestricted -File B:\PCCPlugin\unofficial\example\install.ps1
実行ディレクトリ: C:\Users\user\Downloads\PCCPlugin\example
LOCKLink
LOCK [options...] [name]
概要Link
排他ロックを取得/解除できます。
Windows Installerを使う場合など、同時に2つ以上実行されると問題が起きる場合には排他ロックを取得しなければいけません。
ロックはPackage単位で取得します。
他のPackageがすでにロックしている場合、それが解放されるまでここで処理が止まります。
複数のPackageが解放待ちをしている場合、Priorityに基づいてロックが付与されます。
Note
nameは指定しなかった場合windows_installerになります。
それ以外の用途は未定です。
有効なオプションLink
/LOCKLink
ロックを取得します。
Note
デフォルトの挙動のため指定する必要はありませんが、明示的に記述したほうがわかりやすいです。
/UNLOCKLink
ロックを解除します。
取得していない場合何もしません。
例Link
LOCK /LOCKLink
windows_installerという名前のロックを取得します。
LOCK /UNLOCKLink
windows_installerという名前のロックを解放します。
Note
以下は基本的に使いません
LOCKLink
windows_installerという名前のロックを取得します。
LOCK /UNLOCK pacmanLink
pacmanという名前のロックを解放します。
STATUSLink
STATUS [status]
概要Link
PCCClientに表示されるステータスメッセージを設定します。
Note
statusを省略した場合空文字列になります。
例Link
STATUS Removing WindowsLink
PCCClientのステータス欄にRemoving Windowsと表示されます。
CALLLink
CALL [<plugin>:]<action> [args...]
概要Link
指定したActionを実行します。
pluginを指定すると別のプラグインのActionを実行できます。
Hint
pluginに指定するプラグインはインストール済みである必要があります。
つまり、before="true"なdependencyとして設定する必要があるということです。
例Link
CALL restoreLink
これを実行したプラグインのrestoreという名前のActionが実行されます。
CALL other:delete windowsLink
otherというプラグインのdeleteという名前のActionが、windowsという引数を渡されて実行されます。
ASKLink
ASK <type> [message]
概要Link
PCCClientでユーザーに入力を求めることができます。
それ以外の場合、指定されたtypeの情報の入力を要求します。
指定されている場合は併せてmessageを表示します。
入力内容は${plugin_tempdir}\plugin_ask.txtに平文で保存されます。
最後に改行が挿入されたりはしません。
どちらの場合もユーザーが入力を完了するまで動作が止まります。
指定できるtypeLink
configLink
特殊なtypeで、プラグインの設定を開きます。
stringLink
文字列です。
passwordLink
文字列ですが、入力画面では文字が伏せられます。
fileLink
文字列ですが、ファイルマネージャーからファイルパスを指定するボタンが追加されます。
intLink
整数です。
boolLink
真偽値です。
結果はtrueまたはfalseになります。