summaryrefslogtreecommitdiff
path: root/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/classpath/builder/JarTraverser.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/classpath/builder/JarTraverser.scala')
-rw-r--r--examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/classpath/builder/JarTraverser.scala85
1 files changed, 0 insertions, 85 deletions
diff --git a/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/classpath/builder/JarTraverser.scala b/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/classpath/builder/JarTraverser.scala
deleted file mode 100644
index bbf5270..0000000
--- a/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/classpath/builder/JarTraverser.scala
+++ /dev/null
@@ -1,85 +0,0 @@
-/* __ *\
-** ________ ___ / / ___ __ ____ Scala.js tools **
-** / __/ __// _ | / / / _ | __ / // __/ (c) 2013-2014, LAMP/EPFL **
-** __\ \/ /__/ __ |/ /__/ __ |/_// /_\ \ http://scala-js.org/ **
-** /____/\___/_/ |_/____/_/ | |__/ /____/ **
-** |/____/ **
-\* */
-
-
-package scala.scalajs.tools.classpath.builder
-
-import scala.collection.mutable
-import scala.annotation.tailrec
-
-import java.util.zip._
-import java.io.{InputStream, InputStreamReader, Reader}
-
-import scala.scalajs.tools.io._
-import scala.scalajs.tools.jsdep.JSDependencyManifest
-
-trait JarTraverser extends ClasspathContentHandler with FileSystem {
-
- private val jsFiles = mutable.Map.empty[String, MemVirtualJSFile]
-
- /** Traverse a Jar and return a version */
- protected def traverseJar(jar: File): String = {
- val zipStream = new ZipInputStream(toInputStream(jar))
-
- try readEntries(zipStream, getAbsolutePath(jar))
- finally zipStream.close()
-
- for {
- (_, jsFile) <- jsFiles
- if jsFile.content != "" // drop if this is just a lone sourcemap
- } handleJS(jsFile)
-
- getGlobalVersion(jar)
- }
-
- private def getOrCreateJSFile(relPath: String, fullPath: String, fn: String) =
- jsFiles.getOrElseUpdate(relPath, new MemVirtualJSFile(fullPath) {
- override val name = fn
- })
-
- @tailrec
- private def readEntries(in: ZipInputStream, jarPath: String): Unit = {
- val entry = in.getNextEntry()
- if (entry != null) {
- readEntry(entry, in, jarPath)
- readEntries(in, jarPath)
- }
- }
-
- private def readEntry(entry: ZipEntry, in: InputStream, jarPath: String) = {
- val longName = entry.getName
- val shortName = VirtualFile.nameFromPath(longName)
- val fullPath = jarPath + "#" + longName
-
- def entryReader: Reader = new InputStreamReader(in, "UTF-8")
- def entryContent: String = IO.readInputStreamToString(in)
- def entryBinaryContent: Array[Byte] = IO.readInputStreamToByteArray(in)
- def entryVersion: Option[String] = Some(entry.getTime.toString)
-
- if (longName == JSDependencyManifest.ManifestFileName)
- handleDepManifest(JSDependencyManifest.read(entryReader))
- else if (longName.endsWith(".js")) {
- val relPath = longName
- getOrCreateJSFile(relPath, fullPath, shortName)
- .withContent(entryContent)
- .withVersion(entryVersion)
- } else if (longName.endsWith(".js.map")) {
- // assume the source map of a JS file
- val relPath = longName.dropRight(".map".length)
- getOrCreateJSFile(relPath, fullPath, shortName)
- .withSourceMap(Some(entryContent))
- } else if (longName.endsWith(".sjsir")) {
- val vf = new MemVirtualSerializedScalaJSIRFile(fullPath) {
- override val name = shortName
- }.withContent(entryBinaryContent)
- .withVersion(entryVersion)
-
- handleIR(longName, vf)
- }
- }
-}