build.sc
changeset 5 de7c56ce0654
parent 4 1a1347e8c5be
child 16 4556852613a9
--- a/build.sc	Thu Nov 29 12:20:20 2018 +0100
+++ b/build.sc	Tue Dec 04 12:35:12 2018 +0100
@@ -53,9 +53,20 @@
     "-Xfuture",                          // Turn on future language features.
     "-target:jvm-1.8",
   )}
+
+  def hgId: Input[String] = T.input {
+    os.proc("hg", "id", "-i").call().out.string.trim
+  }
 }
 
-object base extends Common {
+trait Versions {
+  //val bootstrap = "4.1.3"
+  val bootstrap = "3.3.7"
+  val fontAwesome = "5.5.0"
+  val jquery = "3.3.1-1"
+}
+
+object base extends Common with Versions {
   override def scalacPluginIvyDeps: Target[Loose.Agg[Dep]] = super.scalacPluginIvyDeps() ++ Agg(
     ivy"org.scalamacros:::paradise:2.1.0"
   )
@@ -67,14 +78,33 @@
     ivy"org.json4s::json4s-native:3.6.2",
     ivy"ch.qos.logback:logback-classic:1.2.3",
     ivy"com.lihaoyi::scalatags:0.6.7",
-    ivy"org.webjars:bootstrap:4.1.3",
-    ivy"org.webjars:font-awesome:5.5.0"
+    ivy"org.webjars:bootstrap:$bootstrap",
+    ivy"org.webjars:font-awesome:$fontAwesome",
+    ivy"org.webjars:jquery:$jquery"
   )
 
   override def scalacOptions = T{super.scalacOptions.map(_ :+
     "-Xmacro-settings:conf.output.dir=base/resources"
   )}
 
+  override def generatedSources: Target[Seq[PathRef]] = T{
+    val dir = T.ctx().dest
+    write(dir / "buildInfo.scala",
+      s"""
+        | package sqwl.cms
+        | object BuildInfo {
+        |   object versions {
+        |     val bootstrap = "$bootstrap"
+        |     val fontAwesome = "$fontAwesome"
+        |     val jquery = "$jquery"
+        |   }
+        |
+        |   val hgId = "${hgId()}"
+        | }
+      """.stripMargin)
+    Seq(PathRef(dir))
+  }
+
 }
 
 object content extends Common {