「PIONEチュートリアル」の版間の差分

提供: Eospedia
移動: 案内検索
(ページの作成:「'''PIONE''チュートリアル  ここでは、PIONEのチュートリアルを行います。 == 基本1 ==  まず、動かすためのPIONE定義書をつく...」)
 
(基本1)
行5: 行5:
  
 
 まず、動かすためのPIONE定義書をつくります。次の内容のファイル'HelloWorld.pione'を作成してみましょう。
 
 まず、動かすためのPIONE定義書をつくります。次の内容のファイル'HelloWorld.pione'を作成してみましょう。
------
+
 
 
  Rule Main
 
  Rule Main
 
  output 'message.txt'
 
  output 'message.txt'
行12: 行12:
 
  echo "Hello PIONE world !" > message.txt
 
  echo "Hello PIONE world !" > message.txt
 
  End
 
  End
------
 
  
 
 この後、pione-clientを実行します。
 
 この後、pione-clientを実行します。
行47: 行46:
  
 
さっきと比べると、Main Ruleが動いていないことが分かります。
 
さっきと比べると、Main Ruleが動いていないことが分かります。
 +
 +
さて、改めて設定したファイルを眺めてみます。
 +
 +
まず、最初に呼び出されるルール(Main)が定義されています。
 +
Rule Main
 +
 +
Mainは、C言語などと同様に特別な意味をもつルールです。
 +
 +
次に、出力ファイルが定義されています。
 +
 +
output 'message.txt'
 +
 +
ここに書かれたファイルが最終的に-oで指定されたディレクトリに出力として戻ってきます。
 +
Action以降が実際に起動するプログラムになります。
 +
Action
 +
echo "Hello PIONE world !" > message.txt
 +
 +
実際にはシェルスクリプトが動きますので、どんなものも実行が可能です。
 +
#!/bin/csh
 +
で始めれば、cshを使って記述することもできますし、スクリプト系の言語であれば自由に記述し、実行形式を実行出来ます。
 +
 +
最後に、RuleをEndで終了します。
 +
 +
End
 +
 +
これが、一番シンプルなルールの書き方です。

2014年3月28日 (金) 23:59時点における版

'PIONEチュートリアル  ここでは、PIONEのチュートリアルを行います。

基本1

 まず、動かすためのPIONE定義書をつくります。次の内容のファイル'HelloWorld.pione'を作成してみましょう。

Rule Main
	output 'message.txt'

Action
	echo "Hello PIONE world !" > message.txt
End

 この後、pione-clientを実行します。

$ pione-client HelloWorld.pione -o helloOutput

例えば、次のような出力が流れます。

 ==> &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([],{})

その結果、helloOutputというディレクトリができます。その中に指定したファイルmessage.txtが出力されています。

$ cat helloOutput/message.txt
Hello PIONE world !

もう一度、実行すると今度は、実行の必要がないために次のようなものが出力されます。

 ==> &Anonymous:Root([],{})
   --> Rule Application: &Anonymous:Root([],{})
   <-- Rule Application: &Anonymous:Root([],{})
 <== &Anonymous:Root([],{})

さっきと比べると、Main Ruleが動いていないことが分かります。

さて、改めて設定したファイルを眺めてみます。

まず、最初に呼び出されるルール(Main)が定義されています。

Rule Main

Mainは、C言語などと同様に特別な意味をもつルールです。

次に、出力ファイルが定義されています。

	output 'message.txt'

ここに書かれたファイルが最終的に-oで指定されたディレクトリに出力として戻ってきます。 Action以降が実際に起動するプログラムになります。

Action
	echo "Hello PIONE world !" > message.txt

実際にはシェルスクリプトが動きますので、どんなものも実行が可能です。

  1. !/bin/csh

で始めれば、cshを使って記述することもできますし、スクリプト系の言語であれば自由に記述し、実行形式を実行出来ます。

最後に、RuleをEndで終了します。

End

これが、一番シンプルなルールの書き方です。