From 334cc1b01a799c6d1ec8225c801bdf156c420ca7 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Mon, 15 May 2017 15:32:53 +0200 Subject: [PATCH] Address some compilation warnings --- .../src/main/scala/coursier/FromSbt.scala | 32 ++++++++++++++--- .../src/main/scala/coursier/Tasks.scala | 34 +++++++++---------- 2 files changed, 45 insertions(+), 21 deletions(-) diff --git a/sbt-coursier/src/main/scala/coursier/FromSbt.scala b/sbt-coursier/src/main/scala/coursier/FromSbt.scala index 40653e3e9..9c50d9aa9 100644 --- a/sbt-coursier/src/main/scala/coursier/FromSbt.scala +++ b/sbt-coursier/src/main/scala/coursier/FromSbt.scala @@ -7,6 +7,8 @@ import java.net.{MalformedURLException, URL} import coursier.core.Authentication import sbt.{CrossVersion, ModuleID, Resolver} +import scalaz.{-\/, \/-} + import SbtCompatibility._ object FromSbt { @@ -189,14 +191,25 @@ object FromSbt { mavenCompatibleBaseOpt0 match { case None => - Some(IvyRepository( + + val repo = IvyRepository.parse( "file://" + r.patterns.artifactPatterns.head, metadataPatternOpt = Some("file://" + r.patterns.ivyPatterns.head), changing = Some(true), properties = ivyProperties, dropInfoAttributes = true, authentication = authentication - )) + ) match { + case -\/(err) => + sys.error( + s"Cannot parse Ivy patterns ${r.patterns.artifactPatterns.head} and ${r.patterns.ivyPatterns.head}: $err" + ) + case \/-(repo) => + repo + } + + Some(repo) + case Some(mavenCompatibleBase) => mavenRepositoryOpt("file://" + mavenCompatibleBase, log, authentication) } @@ -209,14 +222,25 @@ object FromSbt { mavenCompatibleBaseOpt0 match { case None => - Some(IvyRepository( + + val repo = IvyRepository.parse( r.patterns.artifactPatterns.head, metadataPatternOpt = Some(r.patterns.ivyPatterns.head), changing = None, properties = ivyProperties, dropInfoAttributes = true, authentication = authentication - )) + ) match { + case -\/(err) => + sys.error( + s"Cannot parse Ivy patterns ${r.patterns.artifactPatterns.head} and ${r.patterns.ivyPatterns.head}: $err" + ) + case \/-(repo) => + repo + } + + Some(repo) + case Some(mavenCompatibleBase) => mavenRepositoryOpt(mavenCompatibleBase, log, authentication) } diff --git a/sbt-coursier/src/main/scala/coursier/Tasks.scala b/sbt-coursier/src/main/scala/coursier/Tasks.scala index 2b80cb095..db6d1911e 100644 --- a/sbt-coursier/src/main/scala/coursier/Tasks.scala +++ b/sbt-coursier/src/main/scala/coursier/Tasks.scala @@ -47,24 +47,24 @@ object Tasks { structure(state).allProjectRefs.filter(p => deps(p.project)) } - def coursierResolversTask: Def.Initialize[sbt.Task[Seq[Resolver]]] = - ( - externalResolvers, - sbtPlugin, - sbtResolver, - bootResolvers, - overrideBuildResolvers - ).map { (extRes, isSbtPlugin, sbtRes, bootResOpt, overrideFlag) => - bootResOpt.filter(_ => overrideFlag).getOrElse { - var resolvers = extRes - if (isSbtPlugin) - resolvers = Seq( - sbtRes, - Classpaths.sbtPluginReleases - ) ++ resolvers - resolvers - } + def coursierResolversTask: Def.Initialize[sbt.Task[Seq[Resolver]]] = Def.task { + + val extRes = externalResolvers.value + val isSbtPlugin = sbtPlugin.value + val sbtRes = sbtResolver.value + val bootResOpt = bootResolvers.value + val overrideFlag = overrideBuildResolvers.value + + bootResOpt.filter(_ => overrideFlag).getOrElse { + var resolvers = extRes + if (isSbtPlugin) + resolvers = Seq( + sbtRes, + Classpaths.sbtPluginReleases + ) ++ resolvers + resolvers } + } def coursierRecursiveResolversTask: Def.Initialize[sbt.Task[Seq[Resolver]]] = (