diff --git a/cli/src/main/scala-2.11/coursier/cli/Bootstrap.scala b/cli/src/main/scala-2.11/coursier/cli/Bootstrap.scala index ea41b9ac8..5155de2ce 100644 --- a/cli/src/main/scala-2.11/coursier/cli/Bootstrap.scala +++ b/cli/src/main/scala-2.11/coursier/cli/Bootstrap.scala @@ -119,32 +119,20 @@ final case class Bootstrap( } val (urls, files) = - if (options.standalone) - ( - Seq.empty[String], - helper.fetch( - sources = false, - javadoc = false, - artifactTypes = artifactOptions.artifactTypes(sources = false, javadoc = false) - ) - ) - else - ( - helper.artifacts( - sources = false, - javadoc = false, - artifactTypes = artifactOptions.artifactTypes(sources = false, javadoc = false) - ).map(_.url), - Seq.empty[File] - ) + helper.fetchMap( + sources = false, + javadoc = false, + artifactTypes = artifactOptions.artifactTypes(sources = false, javadoc = false) + ).toList.foldLeft((List.empty[String], List.empty[File])){ + case ((urls, files), (url, file)) => + if (options.standalone) (urls, file :: files) + else if (url.startsWith("file:/")) (urls, file :: files) + else (url :: urls, files) + } val isolatedUrls = isolatedArtifactFiles.map { case (k, (v, _)) => k -> v } val isolatedFiles = isolatedArtifactFiles.map { case (k, (_, v)) => k -> v } - val nonHttpUrls = urls.filter(s => !s.startsWith("http://") && !s.startsWith("https://")) - if (nonHttpUrls.nonEmpty) - Console.err.println(s"Warning: non HTTP URLs:\n${nonHttpUrls.mkString("\n")}") - val buffer = new ByteArrayOutputStream val bootstrapZip = new ZipInputStream(new ByteArrayInputStream(bootstrapJar)) diff --git a/cli/src/main/scala-2.11/coursier/cli/Helper.scala b/cli/src/main/scala-2.11/coursier/cli/Helper.scala index 5a817f871..e4133e901 100644 --- a/cli/src/main/scala-2.11/coursier/cli/Helper.scala +++ b/cli/src/main/scala-2.11/coursier/cli/Helper.scala @@ -657,12 +657,12 @@ class Helper( } } - def fetch( + def fetchMap( sources: Boolean, javadoc: Boolean, artifactTypes: Set[String], subset: Set[Dependency] = null - ): Seq[File] = { + ): Map[String, File] = { val artifacts0 = artifacts(sources, javadoc, artifactTypes, subset).map { artifact => artifact.copy(attributes = Attributes()) @@ -721,8 +721,6 @@ class Helper( (artifact.url, f) }.toMap - val files0 = artifactToFile.values.toSeq - logger.foreach(_.stop()) if (verbosityLevel >= 2) @@ -777,7 +775,16 @@ class Helper( pw.write(jsonStr) pw.close() } - files0 + artifactToFile + } + + def fetch( + sources: Boolean, + javadoc: Boolean, + artifactTypes: Set[String], + subset: Set[Dependency] = null + ): Seq[File] = { + fetchMap(sources,javadoc,artifactTypes,subset).values.toSeq } def contextLoader = Thread.currentThread().getContextClassLoader