blob: 30c8fa61401b176d88800c95648ee865b4ce31a3 [file] [log] [blame]
<?xml version="1.0"?>
<antlib>
<scriptdef name="generate" language="javascript">
<element name="fileset" type="fileset"/>
<attribute name="destDir"/>
<attribute name="checkUpToDate"/>
<attribute name="printerFriendly"/>
<![CDATA[
importClass(java.io.File);
filesets = elements.get("fileset")
for (j=0; j<filesets.size(); j++) {
fs = filesets.get(j);
srcDir = fs.getDir(project);
// Get the files (array) of that fileset
ds = fs.getDirectoryScanner(project);
srcFiles = ds.getIncludedFiles();
// iterate over that array
print('processing '+srcFiles.length+' source files...');
for (i=0; i<srcFiles.length; i++) {
// get the values via Java API
var file = new File(fs.getDir(project), srcFiles[i]);
var basedir = file.getParent();
var filename = file.getName();
var filepath = srcFiles[i].substring(0, srcFiles[i].lastIndexOf(project.getProperty("file.separator"))+1);
if (attributes.get("checkuptodate") == "true") {
p = "xooki."+file.getAbsolutePath().replace(' ','_')+".uptodate";
upToDate = project.createTask("uptodate");
upToDate.setProperty(p);
upToDate.setSrcfile(file);
upToDate.setTargetFile(new File(attributes.get("destdir")+"/"+filepath+"/"+filename));
upToDate.perform();
if (project.getProperty(p) != null) {
self.log(srcFiles[i]+" is up to date", 3);
continue;
}
}
exec = project.createTask("exec");
exec.setDir(new File(basedir));
exec.setExecutable("jrunscript");
exec.setTaskName("generate");
exec.createArg().setValue(srcDir+"/xooki/xooki.js");
exec.createArg().setValue(filename);
exec.createArg().setValue(attributes.get("destdir")+"/"+filepath);
if (attributes.get("printerfriendly") == "true") {
exec.createArg().setValue("print");
}
exec.perform();
}
}
]]>
</scriptdef>
<scriptdef name="print" language="javascript">
<attribute name="src"/>
<attribute name="dest"/>
<attribute name="checkUpToDate"/>
<![CDATA[
importClass(java.io.File);
var file = new File(attributes.get("src"));
var destFile = new File(attributes.get("dest"));
var basedir = file.getParent();
var filename = file.getName();
var perform = true;
if (attributes.get("checkuptodate") == "true") {
p = "xooki."+file.getAbsolutePath().replace(' ','_')+".uptodate";
upToDate = project.createTask("uptodate");
upToDate.setProperty(p);
upToDate.setSrcfile(file);
upToDate.setTargetFile(destFile);
upToDate.perform();
if (project.getProperty(p) != null) {
self.log(file+" is up to date", 3);
perform = false;
}
}
if (perform) {
exec = project.createTask("exec");
exec.setDir(new File(basedir));
exec.setExecutable("jrunscript");
exec.setTaskName("print");
exec.createArg().setValue(project.getProperty("basedir")+"/xooki/xooki.js");
exec.createArg().setValue(filename);
exec.createArg().setValue(destFile);
exec.createArg().setValue("print");
exec.perform();
}
]]>
</scriptdef>
</antlib>