import java.io.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; outdir = ".."; contentdir = "content"; contentFiles = make.createFileList(contentdir, ".*\\.html"); destFiles = make.substitute("(.*)\\.html", outdir+"/$1.html", contentFiles); staticFiles = new String[] { "template.html", "menu.html" }; //------------------------------------------------------------------- //==-- GENERATE NEWS CONTENT --== make.createExplicitDependency(outdir+"/index.html", "news.html"); make.createExplicitRule("news.html", new String[] { "news.xml", "news.xsl" }, "transform", true); transform(String target, String[] prereqs) { print("Transforming "+target); tf = TransformerFactory.newInstance(); trans = tf.newTransformer(new StreamSource(new File("news.xsl"))); trans.transform(new StreamSource(new File("news.xml")), new StreamResult(new File("news.html"))); } //------------------------------------------------------------------- //==-- HTML PROCESSING RULE --== make.createPatternDependency(outdir+"/(.*)\\.html", staticFiles); make.createPatternRule(outdir+"/(.*)\\.html", contentdir+"/$1.html", "combine", true); combine(String target, String[] prereqs) { print("Processing "+target); f = new File(target); htmlCombine = new HTMLCombine("template.html", f.getName()); htmlCombine.parseContentFile("content", prereqs[0]); output = new PrintWriter(new FileWriter(target)); output.print(htmlCombine.combine()); output.close(); } //==-- SET DEPENDENCY ON BUILD FILE --== make.createPatternDependency(".*", "build.bsh"); make.createPhonyRule("build", destFiles, null); make.setDefaultTarget("build");