blob: 9403ce321f387a9908c757adc0d38160f0d63c29 (
plain) (
tree)
|
|
/* __ *\
** ________ ___ / / ___ __ ____ Scala.js tools **
** / __/ __// _ | / / / _ | __ / // __/ (c) 2013-2014, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ |/_// /_\ \ http://scala-js.org/ **
** /____/\___/_/ |_/____/_/ | |__/ /____/ **
** |/____/ **
\* */
package scala.scalajs.tools.classpath.builder
import scala.scalajs.tools.io._
/** A helper trait to traverse an arbitrary classpath element
* (i.e. a JAR or a directory).
*/
trait ClasspathElementsTraverser extends JarTraverser
with DirTraverser
with FileSystem {
protected def traverseClasspathElements(cp: Seq[File]): String =
CacheUtils.joinVersions(cp.map(readEntriesInClasspathElement _): _*)
/** Adds the Scala.js classpath entries in a directory or jar.
* Returns the accumulated version
*/
private def readEntriesInClasspathElement(element: File): String = {
if (!exists(element))
getDummyVersion(element)
else if (isDirectory(element))
traverseDir(element)
else if (isJARFile(element))
traverseJar(element)
else
sys.error(s"$element (in classpath) exists and is neither JAR or directory")
}
}
|