aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Kirillov <darthorimar@users.noreply.github.com>2017-07-17 18:20:40 +0300
committerIlya Kirillov <darthorimar@users.noreply.github.com>2017-07-17 19:34:17 +0300
commit51f41b5a5c5f37ef638ed010d55c8c4aa5da0108 (patch)
treea7e6f64eafa760e1aaf96ee2a0eaf9725e46ef18
parent2670b740a742b8ef746aac6e9dd0cf4a3e527872 (diff)
downloadcbt-51f41b5a5c5f37ef638ed010d55c8c4aa5da0108.tar.gz
cbt-51f41b5a5c5f37ef638ed010d55c8c4aa5da0108.tar.bz2
cbt-51f41b5a5c5f37ef638ed010d55c8c4aa5da0108.zip
Add export to file support
-rw-r--r--stage2/plugins/ExportBuildInformation.scala23
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)
}
}