Don't print colors in coursierDependencyTree if sbt.log.noformat is true

Fixes https://github.com/alexarchambault/coursier/issues/362
This commit is contained in:
Alexandre Archambault 2016-10-30 20:27:50 +01:00
parent e49fbef4e4
commit 92c22a03bd
No known key found for this signature in database
GPG Key ID: 14640A6839C263A9
2 changed files with 30 additions and 8 deletions

View File

@ -54,8 +54,23 @@ object Print {
resolution: Resolution, resolution: Resolution,
printExclusions: Boolean, printExclusions: Boolean,
reverse: Boolean reverse: Boolean
): String =
dependencyTree(roots, resolution, printExclusions, reverse, colors = true)
def dependencyTree(
roots: Seq[Dependency],
resolution: Resolution,
printExclusions: Boolean,
reverse: Boolean,
colors: Boolean
): String = { ): String = {
val (red, yellow, reset) =
if (colors)
(Console.RED, Console.YELLOW, Console.RESET)
else
("", "", "")
case class Elem(dep: Dependency, excluded: Boolean) { case class Elem(dep: Dependency, excluded: Boolean) {
lazy val reconciledVersion = resolution.reconciledVersions lazy val reconciledVersion = resolution.reconciledVersions
@ -65,7 +80,7 @@ object Print {
if (excluded) if (excluded)
resolution.reconciledVersions.get(dep.module) match { resolution.reconciledVersions.get(dep.module) match {
case None => case None =>
s"${Console.YELLOW}(excluded)${Console.RESET} ${dep.module}:${dep.version}" s"$yellow(excluded)$reset ${dep.module}:${dep.version}"
case Some(version) => case Some(version) =>
val versionMsg = val versionMsg =
if (version == dep.version) if (version == dep.version)
@ -74,7 +89,7 @@ object Print {
s"version $version" s"version $version"
s"${dep.module}:${dep.version} " + s"${dep.module}:${dep.version} " +
s"${Console.RED}(excluded, $versionMsg present anyway)${Console.RESET}" s"$red(excluded, $versionMsg present anyway)$reset"
} }
else { else {
val versionStr = val versionStr =
@ -83,9 +98,10 @@ object Print {
else { else {
val assumeCompatibleVersions = compatibleVersions(dep.version, reconciledVersion) val assumeCompatibleVersions = compatibleVersions(dep.version, reconciledVersion)
(if (assumeCompatibleVersions) Console.YELLOW else Console.RED) + (if (assumeCompatibleVersions) yellow else red) +
s"${dep.version} -> $reconciledVersion" + s"${dep.version} -> $reconciledVersion" +
Console.RESET (if (assumeCompatibleVersions || colors) "" else " (possible incompatibility)") +
reset
} }
s"${dep.module}:$versionStr" s"${dep.module}:$versionStr"
@ -138,16 +154,16 @@ object Print {
) { ) {
lazy val repr: String = lazy val repr: String =
if (excluding) if (excluding)
s"${Console.YELLOW}(excluded by)${Console.RESET} $module:$version" s"$yellow(excluded by)$reset $module:$version"
else if (wantVersion == gotVersion) else if (wantVersion == gotVersion)
s"$module:$version" s"$module:$version"
else { else {
val assumeCompatibleVersions = compatibleVersions(wantVersion, gotVersion) val assumeCompatibleVersions = compatibleVersions(wantVersion, gotVersion)
s"$module:$version " + s"$module:$version " +
(if (assumeCompatibleVersions) Console.YELLOW else Console.RED) + (if (assumeCompatibleVersions) yellow else red) +
s"(wants $dependsOn:$wantVersion, got $gotVersion)" + s"(wants $dependsOn:$wantVersion, got $gotVersion)" +
Console.RESET reset
} }
} }

View File

@ -971,7 +971,13 @@ object Tasks {
// use sbt logging? // use sbt logging?
println( println(
projectName + "\n" + projectName + "\n" +
Print.dependencyTree(dependencies0, subRes, printExclusions = true, inverse) Print.dependencyTree(
dependencies0,
subRes,
printExclusions = true,
inverse,
colors = !sys.props.get("sbt.log.noformat").toSeq.contains("true")
)
) )
} }