All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ammonite.main.Defaults.scala Maven / Gradle / Ivy


package ammonite.main

import java.io.InputStream

import ammonite.util.{ImportData, Imports, Util}
import coursierapi.Dependency

import scala.io.Codec

/**
  * Constants used in the default configuration for the Ammonite REPL
  */
object Defaults{

  val welcomeBanner = {
    def ammoniteVersion = ammonite.Constants.version
    def javaVersion = System.getProperty("java.version")
    Util.normalizeNewlines(
      s"Welcome to the Ammonite Repl $ammoniteVersion (Scala %SCALA_VERSION% Java $javaVersion)"
    )
  }

  val replImports = Imports(
    ImportData("""ammonite.repl.ReplBridge.value.{
      codeColorsImplicit,
      tprintColorsImplicit,
      show,
      typeOf
    }""")
  )
  def ammoniteHome = os.Path(System.getProperty("user.home"))/".ammonite"

  def alreadyLoadedDependencies(
    resourceName: String = "amm-dependencies.txt"
  ): Seq[Dependency] = {

    var is: InputStream = null

    try {
      is = Thread.currentThread().getContextClassLoader.getResourceAsStream(resourceName)
      if (is == null)
        throw new Exception(s"Resource $resourceName not found")
      scala.io.Source.fromInputStream(is)(Codec.UTF8)
        .mkString
        .split('\n')
        .filter(_.nonEmpty)
        .map(l => l.split(':') match {
          case Array(org, name, ver) =>
            Dependency.of(org, name, ver)
          case other =>
            throw new Exception(s"Cannot parse line '$other' from resource $resourceName")
        })
    } finally {
      if (is != null)
        is.close()
    }
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy