aboutsummaryrefslogblamecommitdiff
path: root/compiler/src/dotty/tools/dotc/repl/ManifestInfo.scala
blob: 206dccd67075d50338fc8ca46f57f4e594ccd7a7 (plain) (tree)



















                                                                                                  
package dotty.tools.dotc.repl

import java.net.JarURLConnection
import scala.collection.JavaConversions._

object ManifestInfo {

  val attributes: Map[String, String] = {
    for {
      resourceUrl <- Option(getClass.getResource(getClass.getSimpleName + ".class"))
      urlConnection = resourceUrl.openConnection() if urlConnection.isInstanceOf[JarURLConnection]
      manifest <- Option(urlConnection.asInstanceOf[JarURLConnection].getManifest)
    } yield {
      manifest.getMainAttributes.foldLeft(Map[String, String]())(
        (map, attribute) => map + (attribute._1.toString -> attribute._2.toString)
      )
    }
  }.getOrElse(Map())

}