diff options
Diffstat (limited to 'examples/scala-js/project/project/ScalaJSEnvGenerator.scala')
-rw-r--r-- | examples/scala-js/project/project/ScalaJSEnvGenerator.scala | 31 |
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) + } + +} |