diff options
Diffstat (limited to 'examples/scala-js/sbt-plugin/src/main/scala/scala/scalajs/sbtplugin/env/VirtualFileMaterializer.scala')
-rw-r--r-- | examples/scala-js/sbt-plugin/src/main/scala/scala/scalajs/sbtplugin/env/VirtualFileMaterializer.scala | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/examples/scala-js/sbt-plugin/src/main/scala/scala/scalajs/sbtplugin/env/VirtualFileMaterializer.scala b/examples/scala-js/sbt-plugin/src/main/scala/scala/scalajs/sbtplugin/env/VirtualFileMaterializer.scala deleted file mode 100644 index fca1c47..0000000 --- a/examples/scala-js/sbt-plugin/src/main/scala/scala/scalajs/sbtplugin/env/VirtualFileMaterializer.scala +++ /dev/null @@ -1,67 +0,0 @@ -package scala.scalajs.sbtplugin.env - -import scala.scalajs.tools.io.{IO => _, _} - -import sbt.IO - -import java.io.File - -/** A helper class to temporarily store virtual files to the filesystem. - * - * Can be used with tools that require real files. - * @param singleDir if true, forces files to be copied into - * [[cacheDir]]. Useful to setup include directories for - * example. - */ -final class VirtualFileMaterializer(singleDir: Boolean = false) { - - val cacheDir = { - val dir = IO.createTemporaryDirectory - dir.deleteOnExit() - dir - } - - /** Create a target file to write/copy to. Will also call - * deleteOnExit on the file. - */ - private def trgFile(name: String): File = { - val f = new File(cacheDir, name) - f.deleteOnExit() - f - } - - private def materializeFileVF(vf: FileVirtualFile): File = { - if (!singleDir) vf.file - else { - val trg = trgFile(vf.name) - IO.copyFile(vf.file, trg) - trg - } - } - - def materialize(vf: VirtualTextFile): File = vf match { - case vf: FileVirtualFile => materializeFileVF(vf) - case _ => - val trg = trgFile(vf.name) - IO.write(trg, vf.content) - trg - } - - def materialize(vf: VirtualBinaryFile): File = vf match { - case vf: FileVirtualFile => materializeFileVF(vf) - case _ => - val trg = trgFile(vf.name) - IO.write(trg, vf.content) - trg - } - - /** Removes the cache directory. Any operation on this - * VirtualFileMaterializer is invalid after [[close]] has been - * called. - */ - def close(): Unit = { - cacheDir.listFiles().foreach(_.delete) - cacheDir.delete() - } - -} |