X-Git-Url: http://jaekl.net/gitweb/?p=cfb.git;a=blobdiff_plain;f=prod%2Fnet%2Fjaekl%2Fcfb%2FCFB.java;h=94ef08f8a996cecf7ce681574b95bc3fd1ad62f9;hp=d202d6fcb518b1ee54697588fc6c0204fd92e4b7;hb=1b35159cf2ff8d86b037f7d442f7b1f4c8e3b2f3;hpb=769f0f2e9b90516e68246b551a4c68f953018c72 diff --git a/prod/net/jaekl/cfb/CFB.java b/prod/net/jaekl/cfb/CFB.java index d202d6f..94ef08f 100644 --- a/prod/net/jaekl/cfb/CFB.java +++ b/prod/net/jaekl/cfb/CFB.java @@ -19,6 +19,7 @@ import java.util.Locale.Category; import net.jaekl.cfb.analyze.Analysis; import net.jaekl.cfb.analyze.Analyzer; import net.jaekl.cfb.analyze.Delta; +import net.jaekl.cfb.analyze.HtmlReport; import net.jaekl.cfb.analyze.MessageMap; import net.jaekl.cfb.db.CfbSchema; import net.jaekl.cfb.db.TypeMismatchException; @@ -50,6 +51,7 @@ public class CFB { String m_pass; // db password String m_buildNum; // build number (version) boolean m_removeSchema; // purge DB schema + File m_output; // File to which we should write our output (report) CFB(Locale locale) { m_driver = new PostgresqlDriver(); @@ -66,19 +68,21 @@ public class CFB { m_user = "user"; m_buildNum = null; m_removeSchema = false; + m_output = null; } Options createOptions() { Options opt = new Options(); - opt.addOption("d", "dbname", true, "DB name"); - opt.addOption("f", "fbp", true, "FindBugsProject file"); - opt.addOption("h", "host", true, "DB hostname"); - opt.addOption("n", "number", true, "Build number (version)"); - opt.addOption("p", "pass", true, "DB password"); - opt.addOption("r", "remove", false, "Remove database schema (drop all data)"); - opt.addOption("t", "port", true, "DB port"); - opt.addOption("u", "user", true, "DB username"); + opt.addOption("d", "dbname", true, "DB name"); + opt.addOption(null, "drop-tables", false, "Remove database schema (drop all data)"); + opt.addOption("f", "fbp", true, "FindBugsProject file"); + opt.addOption("h", "host", true, "DB hostname"); + opt.addOption("n", "number", true, "Build number (version)"); + opt.addOption("o", "outfile", true, "Output report filename"); + opt.addOption("p", "pass", true, "DB password"); + opt.addOption("t", "port", true, "DB port"); + opt.addOption("u", "user", true, "DB username"); return opt; } @@ -100,10 +104,13 @@ public class CFB { if (line.hasOption("n")) { m_buildNum = line.getOptionValue("n"); } + if (line.hasOption("o")) { + m_output = new File(line.getOptionValue("o")); + } if (line.hasOption("p")) { m_pass = line.getOptionValue("p"); } - m_removeSchema = line.hasOption("r"); + m_removeSchema = line.hasOption("drop-tables"); if (line.hasOption("t")) { m_port = Integer.parseInt(line.getOptionValue("t")); } @@ -192,7 +199,9 @@ public class CFB { store.put(analysis); Analysis prior = store.getPrior(analysis); Delta delta = new Delta(prior, analysis); - delta.dump(pw); + + HtmlReport report = new HtmlReport(m_bundle, messageMap.getColl()); + report.write(m_output, delta); } catch (SQLException exc) { reportUnableToConnect(pw, exc);