--- a/build.sc Tue Dec 11 21:37:53 2018 +0100
+++ b/build.sc Thu Dec 13 14:21:10 2018 +0100
@@ -1,16 +1,11 @@
-import java.io.File
-
import ammonite.ops._
-import coursier.maven.MavenRepository
import mill._
-import mill.define.{Command, Input, Sources, Target}
+import mill.define.{Input, Sources, Target}
import mill.scalajslib._
import mill.scalalib._
import mill.scalalib.publish._
import mill.util.Loose
-import scala.sys
-
val appVersion = "18.12-SNAPSHOT"
val scalaJsVer = "0.6.25"
@@ -111,6 +106,38 @@
object content extends Common {
override def moduleDeps = Seq(base)
override def sources : Sources = T.sources{ millSourcePath / up / 'example / 'src }
+ override def generatedSources: Target[Seq[PathRef]] = T{
+ val dir = T.ctx().dest
+ val src = millSourcePath / up / 'example / 'content
+ val ids = ls! src filter(_.name endsWith ".scalatex") map { p =>
+ val id = p.name replaceAllLiterally (".scalatex", "")
+ val aid = s"article-$id"
+ write(dir / s"$id.scala",
+ s"""
+ | package sqwl.cms
+ | import scalatags.Text.all._
+ | import scalatex._
+ | import sqwl.cms.Category._
+ | import sqwl.cms.Tag._
+ | import sqwl.cms.Articles.article
+ | object `$aid` {
+ | implicit val id = Articles.Id("$id")
+ | twf("${p.toString}")
+ | }
+ """.stripMargin)
+ aid
+ }
+ write(dir / "initializer.scala",
+ s"""
+ | package sqwl.cms
+ | object InitializeContent {
+ | def apply(): Unit = {
+ | Seq(${ids mkString("`", "`, `", "`")})
+ | }
+ | }
+ """.stripMargin)
+ Seq(PathRef(dir))
+ }
override def ivyDeps = Agg(
ivy"com.beachape::enumeratum:1.5.13"
)