<⊆├Pnuts

PnutsAntで使うためのTaskです。

サンプル

<?xml version="1.0"?>

<project default="test">
  <taskdef name="pnuts" classname="jp.gr.java_conf.koto.ltntpnuts.LTntPnuts" />
  
  <target name="test1">
    <echo message="--test1--" />
    <pnuts> <![CDATA[
      use("pnuts.lib");
      println("Hello World!");
      for (i = 0; i < 10; i++) {
        println(i);
      }
    ]]> </pnuts>
  </target>
  
  <target name="test2">
    <echo message="--test2--" />
    <property name="test" value="5" />
    <pnuts> <![CDATA[
      max = Integer(test);
      test = 0;
      for (i = 1; i <= max; i++)
        test += i;
    ]]> </pnuts>
    <echo message="${test}" />   <!-- echo "15"     -->
    <echo message="${max}" />    <!-- echo "${max}" -->
    <echo message="${i}" />      <!-- echo "${i}"   -->
  </target>
  
  <target name="test3">
    <echo message="--test3--" />
    <property name="hello" value="ThisIsTest" />
    <pnuts> <![CDATA[
      p = package();
      c = getContext();
      System::out.println(p.get("ant.file".intern(), c));
      System::out.println(p.get("ant.version".intern(), c));
      System::out.println(p.get("ant.java.version".intern(), c));
    ]]> </pnuts>
  </target>
  
  <target name="test" depends="test1,test2,test3">
  </target>
</project>

使い方

ltntpnuts.jarとpnuts.jarをCLASSPATHに加え、

<taskdef name="pnuts" classname="jp.gr.java_conf.koto.ltntpnuts.LTntPnuts" />

<pnuts> <![CDATA[
    スクリプト
]]> </pnuts>

みたいな調子で使います。

Ant中で定義されたプロパティの名前が識別子として利用可能な文字列からなる場合、Pnutsスクリプト中でのその名前の変数は、Ant中で定義されたプロパティのプロクシとして働きます。変数の値はプロパティの値(文字列型)に初期化され、変数への代入は、値をtoString()して得られる文字列をプロパティに設定します。また、プロパティの名前が識別子として利用可能でない場合、package().get(...)package().set(...)によってアクセスすることができます(が、この機能は将来のバージョンでは廃止されるかもしれません)。

また、taskという名前のプロパティが定義されていない場合、task変数によって、このタスク(org.apache.tools.ant.Task)にアクセスすることができます。package().get("ltntpnuts.task".intern(), getContext())も同様です。

ライセンス

GPLに従います