build.sc
changeset 18 8cfd67425811
parent 16 4556852613a9
child 20 677672b9e386
equal deleted inserted replaced
17:0ebcd5464503 18:8cfd67425811
     1 import java.io.File
       
     2 
       
     3 import ammonite.ops._
     1 import ammonite.ops._
     4 import coursier.maven.MavenRepository
       
     5 import mill._
     2 import mill._
     6 import mill.define.{Command, Input, Sources, Target}
     3 import mill.define.{Input, Sources, Target}
     7 import mill.scalajslib._
     4 import mill.scalajslib._
     8 import mill.scalalib._
     5 import mill.scalalib._
     9 import mill.scalalib.publish._
     6 import mill.scalalib.publish._
    10 import mill.util.Loose
     7 import mill.util.Loose
    11 
       
    12 import scala.sys
       
    13 
     8 
    14 val appVersion = "18.12-SNAPSHOT"
     9 val appVersion = "18.12-SNAPSHOT"
    15 
    10 
    16 val scalaJsVer = "0.6.25"
    11 val scalaJsVer = "0.6.25"
    17 val scalaVer = "2.12.7"
    12 val scalaVer = "2.12.7"
   109 }
   104 }
   110 
   105 
   111 object content extends Common {
   106 object content extends Common {
   112   override def moduleDeps = Seq(base)
   107   override def moduleDeps = Seq(base)
   113   override def sources : Sources = T.sources{ millSourcePath / up / 'example / 'src }
   108   override def sources : Sources = T.sources{ millSourcePath / up / 'example / 'src }
       
   109   override def generatedSources: Target[Seq[PathRef]] = T{
       
   110     val dir = T.ctx().dest
       
   111     val src = millSourcePath / up / 'example / 'content
       
   112     val ids = ls! src filter(_.name endsWith ".scalatex") map { p =>
       
   113       val id = p.name replaceAllLiterally (".scalatex", "")
       
   114       val aid = s"article-$id"
       
   115       write(dir / s"$id.scala",
       
   116         s"""
       
   117           | package sqwl.cms
       
   118           | import scalatags.Text.all._
       
   119           | import scalatex._
       
   120           | import sqwl.cms.Category._
       
   121           | import sqwl.cms.Tag._
       
   122           | import sqwl.cms.Articles.article
       
   123           | object `$aid` {
       
   124           |   implicit val id = Articles.Id("$id")
       
   125           |   twf("${p.toString}")
       
   126           | }
       
   127         """.stripMargin)
       
   128       aid
       
   129     }
       
   130     write(dir / "initializer.scala",
       
   131       s"""
       
   132         | package sqwl.cms
       
   133         | object InitializeContent {
       
   134         |   def apply(): Unit = {
       
   135         |     Seq(${ids mkString("`", "`, `", "`")})
       
   136         |   }
       
   137         | }
       
   138       """.stripMargin)
       
   139     Seq(PathRef(dir))
       
   140   }
   114   override def ivyDeps = Agg(
   141   override def ivyDeps = Agg(
   115     ivy"com.beachape::enumeratum:1.5.13"
   142     ivy"com.beachape::enumeratum:1.5.13"
   116   )
   143   )
   117 }
   144 }
   118 
   145