-
Notifications
You must be signed in to change notification settings - Fork 128
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #667 from alexarchambault/more-lightweight-cs-logging
More lightweight coursier logging
- Loading branch information
Showing
22 changed files
with
460 additions
and
53 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
modules/build/src/main/scala/scala/build/internal/CsLoggerUtil.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package scala.build.internal | ||
|
||
import coursier.cache.FileCache | ||
import coursier.cache.loggers.RefreshLogger | ||
import coursier.jvm.JavaHome | ||
import coursier.util.Task | ||
|
||
object CsLoggerUtil { | ||
|
||
// All of these methods are a bit flaky… | ||
|
||
implicit class CsCacheExtensions(private val cache: FileCache[Task]) extends AnyVal { | ||
def withMessage(message: String): FileCache[Task] = | ||
cache.logger match { | ||
case _: RefreshLogger => | ||
var displayed = false | ||
val logger = RefreshLogger.create( | ||
CustomProgressBarRefreshDisplay.create( | ||
keepOnScreen = false, | ||
if (!displayed) { | ||
System.err.println(message) | ||
displayed = true | ||
}, | ||
() | ||
) | ||
) | ||
cache.withLogger(logger) | ||
case _ => cache | ||
} | ||
} | ||
implicit class CsJavaHomeExtensions(private val javaHome: JavaHome) extends AnyVal { | ||
def withMessage(message: String): JavaHome = | ||
javaHome.cache.map(_.archiveCache.cache) match { | ||
case Some(f: FileCache[Task]) => | ||
val cache0 = f.withMessage(message) | ||
javaHome.withCache( | ||
javaHome.cache.map(c => c.withArchiveCache(c.archiveCache.withCache(cache0))) | ||
) | ||
case _ => javaHome | ||
} | ||
} | ||
} |
Oops, something went wrong.