@@ -4,9 +4,13 @@ import caseapp.*
4
4
import com .github .plokhotnyuk .jsoniter_scala .core .*
5
5
import com .github .plokhotnyuk .jsoniter_scala .macros .*
6
6
import coursier .cache .{CacheLogger , CachePolicy , FileCache }
7
+ import coursier .util .Task
7
8
9
+ import scala .build .Logger
8
10
import scala .build .internals .EnvVar
9
11
import scala .cli .commands .tags
12
+ import scala .cli .config .Keys
13
+ import scala .cli .util .ConfigDbUtils
10
14
import scala .concurrent .duration .Duration
11
15
12
16
// format: off
@@ -39,24 +43,28 @@ final case class CoursierOptions(
39
43
private def validateChecksums =
40
44
coursierValidateChecksums.getOrElse(true )
41
45
42
- def coursierCache (logger : CacheLogger ) = {
43
- var baseCache = FileCache ().withLogger(logger )
46
+ def coursierCache (logger : Logger , cacheLogger : CacheLogger ): FileCache [ Task ] = {
47
+ var baseCache = FileCache ().withLogger(cacheLogger )
44
48
if (! validateChecksums)
45
49
baseCache = baseCache.withChecksums(Nil )
46
50
val ttlOpt = ttl.map(_.trim).filter(_.nonEmpty).map(Duration (_))
47
51
for (ttl0 <- ttlOpt)
48
52
baseCache = baseCache.withTtl(ttl0)
49
53
for (loc <- cache.filter(_.trim.nonEmpty))
50
54
baseCache = baseCache.withLocation(loc)
51
- for (isOffline <- getOffline() if isOffline)
55
+ for (isOffline <- getOffline(logger ) if isOffline)
52
56
baseCache = baseCache.withCachePolicies(Seq (CachePolicy .LocalOnly ))
53
57
54
58
baseCache
55
59
}
56
60
57
- def getOffline (): Option [Boolean ] = offline
61
+ def coursierCache (logger : Logger , cacheLoggerPrefix : String = " " ): FileCache [Task ] =
62
+ coursierCache(logger, logger.coursierLogger(cacheLoggerPrefix))
63
+
64
+ def getOffline (logger : Logger ): Option [Boolean ] = offline
58
65
.orElse(EnvVar .Coursier .coursierMode.valueOpt.map(_ == " offline" ))
59
66
.orElse(Option (System .getProperty(" coursier.mode" )).map(_ == " offline" ))
67
+ .orElse(ConfigDbUtils .getConfigDbOpt(logger).flatMap(_.get(Keys .offline).toOption.flatten))
60
68
}
61
69
62
70
object CoursierOptions {
0 commit comments