summaryrefslogtreecommitdiff
blob: c2a6e09bf492e15bacae6ede63f8523b670dcfb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<project name="bsftest" default="all" basedir=".">

  <target name="squares">

    <script language="javascript"> <![CDATA[

      for (i=1; i<=10; i++) {
        echo = bsftest.createTask("echo");
        echo.setMessage(i*i);
        echo.perform();
      }

    ]]> </script>

  </target>

  <target name="fileset_echo">

    <property name="fs.dir" value="src"/>
    <property name="fs.includes" value="**/*.txt"/>
    <property name="fs.excludes" value="**/*.tmp"/>

    <script language="javascript"> <![CDATA[

      // import statements
      // importPackage(java.io);
      importClass(java.io.File);

      // Access to Ant-Properties by their names
      dir      = project.getProperty("fs.dir");
      includes = bsftest.getProperty("fs.includes");
      excludes = self.getProject()  .getProperty("fs.excludes");

      // Create a <fileset dir="" includes=""/>
      fs = project.createDataType("fileset");
      fs.setDir( new File(dir) );
      fs.setIncludes(includes);
      fs.setExcludes(excludes);

      // Get the files (array) of that fileset
      ds = fs.getDirectoryScanner(project);
      srcFiles = ds.getIncludedFiles();

      // iterate over that array
      for (i=0; i<srcFiles.length; i++) {

        // get the values via Java API
        var basedir  = fs.getDir(project);
        var filename = srcFiles[i];
        var file = new File(basedir, filename);
        var size = file.length();

        // create and use a Task via Ant API
        echo = bsftest.createTask("echo");
        echo.setMessage(filename + ": " + size + " byte");
        echo.perform();
      }
    ]]></script>
  </target>
  
  <target name="all" depends="squares,fileset_echo">
     <echo message="tests passed"/>
  </target>

</project>