From efb4f6c5c0893030d4855e6003943c9611cd7e4c Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sun, 3 Jul 2016 16:33:01 +0200 Subject: [PATCH] Allow to specify Maven profiles via the CLI app --- cli/src/main/scala-2.11/coursier/cli/Helper.scala | 4 +++- cli/src/main/scala-2.11/coursier/cli/Options.scala | 4 ++++ core/shared/src/main/scala/coursier/core/Resolution.scala | 8 ++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) 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 fdd230cbe..571885178 100644 --- a/cli/src/main/scala-2.11/coursier/cli/Helper.scala +++ b/cli/src/main/scala-2.11/coursier/cli/Helper.scala @@ -273,11 +273,13 @@ class Helper( } } + val userEnabledProfiles = profile.toSet val startRes = Resolution( dependencies.toSet, forceVersions = forceVersions, - filter = Some(dep => keepOptional || !dep.optional) + filter = Some(dep => keepOptional || !dep.optional), + profileActivation = Some(core.Resolution.userProfileActivation(userEnabledProfiles)) ) val loggerFallbackMode = diff --git a/cli/src/main/scala-2.11/coursier/cli/Options.scala b/cli/src/main/scala-2.11/coursier/cli/Options.scala index 5439722a2..4fa545714 100644 --- a/cli/src/main/scala-2.11/coursier/cli/Options.scala +++ b/cli/src/main/scala-2.11/coursier/cli/Options.scala @@ -74,6 +74,10 @@ case class CommonOptions( @Help("Print dependencies as an inversed tree (dependees as children)") @Short("T") reverseTree: Boolean, + @Help("Enable profile") + @Value("profile") + @Short("F") + profile: List[String], @Recurse cacheOptions: CacheOptions ) { diff --git a/core/shared/src/main/scala/coursier/core/Resolution.scala b/core/shared/src/main/scala/coursier/core/Resolution.scala index c65d06acf..466e273ed 100644 --- a/core/shared/src/main/scala/coursier/core/Resolution.scala +++ b/core/shared/src/main/scala/coursier/core/Resolution.scala @@ -453,6 +453,14 @@ object Resolution { } } + def userProfileActivation(userProfiles: Set[String])( + id: String, + activation: Activation, + props: Map[String, String] + ): Boolean = + userProfiles(id) || + defaultProfileActivation(id, activation, props) + /** * Default dependency filter used during resolution. *