実行例
オプション必須項目のみの場合
引数にPIONE定義書を指定して実行します。
$ pione-client HelloWorld.pione
==> &Anonymous:Root([],{})
--> Rule Application: &Anonymous:Root([],{})
--> Distribution: &Anonymous:Root([],{})
>>> &Anonymous:Main([],{})
==> &Anonymous:Main([],{})
SH ------------------------------------------------------------
SH echo "Hello PIONE world !" > message.txt
SH ------------------------------------------------------------
<-- Distribution: &Anonymous:Root([],{})
<== &Anonymous:Main([],{})
<-- Rule Application: &Anonymous:Root([],{})
<== &Anonymous:Root([],{})
$ ls ./process/
output pione-process.log
$ cat ./process/output/message.txt
Hello PIONE world !
-b指定なしなので、processディレクトリが作成され、その中に入力(今回は無い)、出力、ログが格納されます。
オプション -b
-bにてディレクトリ名を指定して実行します。
$ pione-client HelloWorld.pione -b BaseDir
==> &Anonymous:Root([],{})
--> Rule Application: &Anonymous:Root([],{})
--> Distribution: &Anonymous:Root([],{})
>>> &Anonymous:Main([],{})
==> &Anonymous:Main([],{})
SH ------------------------------------------------------------
SH echo "Hello PIONE world !" > message.txt
SH ------------------------------------------------------------
<== &Anonymous:Main([],{})
<-- Distribution: &Anonymous:Root([],{})
<-- Rule Application: &Anonymous:Root([],{})
<== &Anonymous:Root([],{})
$ ls BaseDir/
output pione-process.log
$ cat BaseDir/output/message.txt
Hello PIONE world !
BaseDirディレクトリが作成され、その中に結果などが格納されています。
オプション --dry-run
$ pione-client HelloWorld.pione --dry-run
==> &Anonymous:Root([],{})
--> Rule Application: &Anonymous:Root([],{})
--> Distribution: &Anonymous:Root([],{})
>>> &Anonymous:Main([],{})
==> &Anonymous:Main([],{})
SH ------------------------------------------------------------
SH echo "Hello PIONE world !" > message.txt
SH ------------------------------------------------------------
<-- Distribution: &Anonymous:Root([],{})
<-- Rule Application: &Anonymous:Root([],{})
<== &Anonymous:Root([],{})
<== &Anonymous:Main([],{})
$ ls ./process/
output pione-process.log
$ cat ./process/output/message.txt
$
ドライランモードではシェルスクリプトの実行をせず、出力ファイルを空ファイルで作成します。
オプション -i
-iにて入力データ用のディレクトリ名を指定して実行します。
Multiplying.pione
Rule Main
input 'test.in'
output 'test.out'
Action
awk '{ print $1*2 }' {$I[1]} > {$O[1]}
End
上記のPIONE定義書は入力データtest.inを必要としていますので、test.inのディレクトリ名を相対パスで設定します。
MultiplyingInput内
$ ls MultiplyingInput
test.in
実行結果
$ pione-client Multiplying.pione -i MultiplyingInput/
==> &Anonymous:Root([.DS_Store,test.in],{})
--> Rule Application: &Anonymous:Root([.DS_Store,test.in],{})
--> Distribution: &Anonymous:Root([.DS_Store,test.in],{})
>>> &Anonymous:Main([test.in],{})
==> &Anonymous:Main([test.in],{})
SH ------------------------------------------------------------
SH awk '{ print $1*2 }' test.in > test.out
SH ------------------------------------------------------------
<-- Distribution: &Anonymous:Root([.DS_Store,test.in],{})
<== &Anonymous:Main([test.in],{})
<-- Rule Application: &Anonymous:Root([.DS_Store,test.in],{})
<== &Anonymous:Root([.DS_Store,test.in],{})
$ ls process/
input output pione-process.log
$ ls process/input/
test.in
MultiplyingInput内のデータを入力としてprocess/input内にコピーし、処理を実行しています。
オプション --params