diff --git a/cli/src/main/scala/coursier/cli/Coursier.scala b/cli/src/main/scala/coursier/cli/Coursier.scala index 0162ebd44..dffa563b6 100644 --- a/cli/src/main/scala/coursier/cli/Coursier.scala +++ b/cli/src/main/scala/coursier/cli/Coursier.scala @@ -29,8 +29,8 @@ case class Coursier( def fileRepr(f: File) = f.toString - val logger: MavenRepository.Logger with FilesLogger = - new MavenRepository.Logger with FilesLogger { + val logger: MavenRepository.Logger with Files.Logger = + new MavenRepository.Logger with Files.Logger { def println(s: String) = Console.err.println(s) def downloading(url: String) = diff --git a/files/src/main/scala/coursier/Files.scala b/files/src/main/scala/coursier/Files.scala index ad707f46b..f19344080 100644 --- a/files/src/main/scala/coursier/Files.scala +++ b/files/src/main/scala/coursier/Files.scala @@ -1,28 +1,25 @@ package coursier -import java.net.{URI, URL} +import java.net.{ URI, URL } import coursier.core.Repository.CachePolicy import scala.annotation.tailrec -import scalaz.{-\/, \/-, \/, EitherT} +import scalaz.{ -\/, \/-, \/, EitherT } import scalaz.concurrent.Task import java.io._ -// FIXME This kind of side-effecting API is lame, we should aim at a more functional one. -trait FilesLogger { - def foundLocally(f: File): Unit - def downloadingArtifact(url: String): Unit - def downloadedArtifact(url: String, success: Boolean): Unit -} +case class Files( + cache: Seq[(String, File)], + tmp: () => File, + logger: Option[Files.Logger] = None +) { -case class Files(cache: Seq[(String, File)], - tmp: () => File, - logger: Option[FilesLogger] = None) { - - def file(artifact: Artifact, - cachePolicy: CachePolicy): EitherT[Task, String, File] = { + def file( + artifact: Artifact, + cachePolicy: CachePolicy + ): EitherT[Task, String, File] = { if (artifact.url.startsWith("file:///")) { val f = new File(new URI(artifact.url) .getPath) @@ -100,6 +97,13 @@ case class Files(cache: Seq[(String, File)], object Files { + // FIXME This kind of side-effecting API is lame, we should aim at a more functional one. + trait Logger { + def foundLocally(f: File): Unit + def downloadingArtifact(url: String): Unit + def downloadedArtifact(url: String, success: Boolean): Unit + } + var bufferSize = 1024*1024 def readFullySync(is: InputStream) = {