diff options
author | Ilya Kirillov <darthorimar@users.noreply.github.com> | 2017-07-17 18:20:40 +0300 |
---|---|---|
committer | Ilya Kirillov <darthorimar@users.noreply.github.com> | 2017-07-17 19:34:17 +0300 |
commit | 51f41b5a5c5f37ef638ed010d55c8c4aa5da0108 (patch) | |
tree | a7e6f64eafa760e1aaf96ee2a0eaf9725e46ef18 | |
parent | 2670b740a742b8ef746aac6e9dd0cf4a3e527872 (diff) | |
download | cbt-51f41b5a5c5f37ef638ed010d55c8c4aa5da0108.tar.gz cbt-51f41b5a5c5f37ef638ed010d55c8c4aa5da0108.tar.bz2 cbt-51f41b5a5c5f37ef638ed010d55c8c4aa5da0108.zip |
Add export to file support
-rw-r--r-- | stage2/plugins/ExportBuildInformation.scala | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/stage2/plugins/ExportBuildInformation.scala b/stage2/plugins/ExportBuildInformation.scala index d815aa0..b510c08 100644 --- a/stage2/plugins/ExportBuildInformation.scala +++ b/stage2/plugins/ExportBuildInformation.scala @@ -7,8 +7,17 @@ import scala.xml._ import scala.util._ trait ExportBuildInformation { self: BaseBuild => - def buildInfoXml: String = - BuildInformationSerializer.serialize(BuildInformation.Project(self, context.args)).toString + def buildInfoXml: String = { + val parameters = BuildInformation.Project.ExportParameters(context.args) + val xml = BuildInformationSerializer.serialize(BuildInformation.Project(self, parameters)) + parameters.outputFile match { + case None => + xml.toString + case Some(file) => + XML.save(file.getPath, xml) + s"Saved to ${file.getPath}" + } + } } object BuildInformation { @@ -64,8 +73,7 @@ object BuildInformation { } object Project { - def apply(build: BaseBuild, args: Seq[String]): Project = { - val parameters = ExportParameters(args) + def apply(build: BaseBuild, parameters: ExportParameters): Project = { new BuildInformationExporter(build, parameters).exportBuildInformation } @@ -265,9 +273,9 @@ object BuildInformation { .replace("/", "-") } - private case class ExportParameters(extraModulePaths: Seq[File], needCbtLibs: Boolean) + case class ExportParameters(extraModulePaths: Seq[File], needCbtLibs: Boolean, outputFile: Option[File]) - private object ExportParameters { + object ExportParameters { def apply(args: Seq[String]): ExportParameters = { val argumentParser = new ArgumentParser(args) val extraModulePaths = argumentParser.value("extraModules") @@ -276,7 +284,8 @@ object BuildInformation { .map(p => new File(p)) .filter(f => f.exists && f.isDirectory) val needCbtLibs: Boolean = argumentParser.value("needCbtLibs").forall(_.toBoolean) - ExportParameters(extraModulePaths, needCbtLibs) + val outputFile = argumentParser.value("outputFile").map(p => new File(p)) + ExportParameters(extraModulePaths, needCbtLibs, outputFile) } } |