-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.sbt
46 lines (40 loc) · 1.41 KB
/
build.sbt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import Dependencies._
import org.scalajs.linker.interface.ModuleInitializer
ThisBuild / scalaVersion := "2.13.8"
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / organization := "net.michalp" // change me
ThisBuild / organizationName := "yare-scala-template" // change me
lazy val root = (project in file("."))
.enablePlugins(ScalaJSPlugin)
.settings(
name := "yare-scala-template",
libraryDependencies ++= dependencies,
scalaJSLinkerConfig ~= {
_.withModuleKind(ModuleKind.NoModule)
}
)
lazy val buildStrategy =
taskKey[Unit]("Generate the strategy js file in ./target/yare-bundle/")
buildStrategy := {
val log = streams.value.log
log.info("Cleaning the workspace")
clean.value
val output = (Compile / fullLinkJS / scalaJSLinkerOutputDirectory).value
log.info("Triggering the scala.js build")
(Compile / fullLinkJS).value
val destination = (ThisBuild / baseDirectory).value / "target" / "yare-bundle"
val filesToCopy = IO.listFiles(output).filter(_.ext == "js")
if (destination.exists()) {
log.info("Performing target destination cleanup")
val filesToDelete = IO.listFiles(destination).filter(_.ext == "js")
filesToDelete.foreach { f =>
log.info(s"Deleting $f")
}
}
filesToCopy.foreach { from =>
log.info("Moving files to the destination directory")
val to = destination / from.name
log.info(s"Copying $from to $to")
IO.copyFile(from, to)
}
}