package aQute.bnd.ant;
import java.io.File;
import java.io.IOException;
import org.apache.tools.ant.BuildException;
import aQute.bnd.build.Project;
import aQute.bnd.build.Workspace;
import aQute.lib.io.IO;
public class RunBundlesTask extends BaseTask {
private File rootDir;
private String outputDir;
private File bndFile = new File(Project.BNDFILE);
@Override
public void execute() throws BuildException {
try {
createReleaseDir();
Workspace workspace;
if (rootDir != null) {
workspace = new Workspace(rootDir);
} else {
workspace = Workspace.findWorkspace(bndFile);
log("Workspace not specified, using " + workspace.getBase().getAbsolutePath());
}
// 2nd arg is not used, so no use trying to set it
Project bndProject = new Project(workspace, null, bndFile);
bndProject.exportRunbundles(bndFile.getName(), new File(outputDir));
bndProject.close();
} catch (Exception e) {
e.printStackTrace();
throw new BuildException(e);
}
}
private File createReleaseDir() {
File releaseDir = new File(outputDir);
try {
IO.deleteWithException(releaseDir);
log("Deleted directory " + outputDir);
} catch (IOException e1) {
// ignore
}
try {
IO.mkdirs(releaseDir);
log("Created directory " + outputDir);
} catch (IOException e) {
throw new BuildException("Output directory '" + outputDir + "' could not be created", e);
}
return releaseDir;
}
public void setRootDir(File rootDir) {
this.rootDir = rootDir;
}
public void setOutputDir(String outputDir) {
this.outputDir = outputDir;
}
public void setBndFile(File bndFile) {
this.bndFile = bndFile;
}
}