summaryrefslogtreecommitdiff
path: root/examples/scala-js/project/project/ScalaJSEnvGenerator.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/project/project/ScalaJSEnvGenerator.scala')
-rw-r--r--examples/scala-js/project/project/ScalaJSEnvGenerator.scala31
1 files changed, 31 insertions, 0 deletions
diff --git a/examples/scala-js/project/project/ScalaJSEnvGenerator.scala b/examples/scala-js/project/project/ScalaJSEnvGenerator.scala
new file mode 100644
index 0000000..a36479f
--- /dev/null
+++ b/examples/scala-js/project/project/ScalaJSEnvGenerator.scala
@@ -0,0 +1,31 @@
+import sbt._
+
+object ScalaJSEnvGenerator {
+
+ /** Generate a *.scala file that contains the scalajsenv as literal string
+ *
+ * We need this so the tools don't rely on I/O and/or resources.
+ */
+ def generateEnvHolder(baseDir: File, sourceDir: File): Seq[File] = {
+ val trg = sourceDir / "ScalaJSEnvHolder.scala"
+ val env = baseDir / "scalajsenv.js"
+
+ if (!trg.exists() || trg.lastModified() < env.lastModified()) {
+ val scalajsenv = IO.read(env).replaceAllLiterally("$", "$$")
+
+ val scalaCode =
+ s"""
+ package scala.scalajs.tools.corelib
+
+ private[corelib] object ScalaJSEnvHolder {
+ final val scalajsenv = raw\"\"\"$scalajsenv\"\"\"
+ }
+ """
+
+ IO.write(trg, scalaCode)
+ }
+
+ Seq(trg)
+ }
+
+}