Skip to content

Commit 7bb5b01

Browse files
committed
Add a global config key for --offline mode
1 parent cc81249 commit 7bb5b01

File tree

19 files changed

+83
-20
lines changed

19 files changed

+83
-20
lines changed

modules/cli/src/main/scala/scala/cli/commands/bloop/BloopExit.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ object BloopExit extends ScalaCommand[BloopExitOptions] {
1818
import opts.*
1919
compilationServer.bloopRifleConfig(
2020
global.logging.logger,
21-
coursier.coursierCache(global.logging.logger.coursierLogger("Downloading Bloop")),
21+
coursier.coursierCache(global.logging.logger.coursierLogger("Downloading Bloop"), global.logging.logger),
2222
global.logging.verbosity,
2323
"java", // shouldn't be used…
2424
Directories.directories

modules/cli/src/main/scala/scala/cli/commands/bloop/BloopOutput.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ object BloopOutput extends ScalaCommand[BloopOutputOptions] {
2020
override def runCommand(options: BloopOutputOptions, args: RemainingArgs, logger: Logger): Unit = {
2121
val bloopRifleConfig = options.compilationServer.bloopRifleConfig(
2222
logger,
23-
CoursierOptions().coursierCache(logger.coursierLogger("Downloading Bloop")), // unused here
23+
CoursierOptions().coursierCache(logger.coursierLogger("Downloading Bloop"), logger), // unused here
2424
options.global.logging.verbosity,
2525
"unused-java", // unused here
2626
Directories.directories

modules/cli/src/main/scala/scala/cli/commands/bloop/BloopStart.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ object BloopStart extends ScalaCommand[BloopStartOptions] {
2424
val buildOptions = BuildOptions(
2525
javaOptions = JvmUtils.javaOptions(jvm).orExit(global.logging.logger),
2626
internal = InternalOptions(
27-
cache = Some(coursier.coursierCache(global.logging.logger.coursierLogger("")))
27+
cache = Some(coursier.coursierCache(global.logging.logger.coursierLogger(""), global.logging.logger))
2828
)
2929
)
3030

3131
compilationServer.bloopRifleConfig(
3232
global.logging.logger,
33-
coursier.coursierCache(global.logging.logger.coursierLogger("Downloading Bloop")),
33+
coursier.coursierCache(global.logging.logger.coursierLogger("Downloading Bloop"), logger),
3434
global.logging.verbosity,
3535
buildOptions.javaHome().value.javaCommand,
3636
Directories.directories

modules/cli/src/main/scala/scala/cli/commands/config/Config.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ object Config extends ScalaCommand[ConfigOptions] {
4646
)
4747
sys.exit(1)
4848
}
49-
val coursierCache = options.coursier.coursierCache(logger.coursierLogger(""))
49+
val coursierCache = options.coursier.coursierCache(logger.coursierLogger(""), logger)
5050
val secKeyEntry = Keys.pgpSecretKey
5151
val pubKeyEntry = Keys.pgpPublicKey
5252

modules/cli/src/main/scala/scala/cli/commands/github/SecretCreate.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ object SecretCreate extends ScalaCommand[SecretCreateOptions] {
157157
).orExit(logger)
158158
}
159159

160-
val cache = options.coursier.coursierCache(logger.coursierLogger(""))
160+
val cache = options.coursier.coursierCache(logger.coursierLogger(""), logger)
161161
val archiveCache = ArchiveCache().withCache(cache)
162162

163163
LibSodiumJni.init(cache, archiveCache, logger)

modules/cli/src/main/scala/scala/cli/commands/new/New.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ object New extends ScalaCommand[NewOptions] {
2424
Seq.empty,
2525
Some(scalaParameters),
2626
logger,
27-
CoursierOptions().coursierCache(logger.coursierLogger("")),
27+
CoursierOptions().coursierCache(logger.coursierLogger(""), logger),
2828
None
2929
) match {
3030
case Right(value) => value

modules/cli/src/main/scala/scala/cli/commands/pgp/PgpExternalCommand.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ abstract class PgpExternalCommand extends ExternalCommand {
106106

107107
val logger = options.global.logging.logger
108108

109-
val cache = options.coursier.coursierCache(logger.coursierLogger(""))
109+
val cache = options.coursier.coursierCache(logger.coursierLogger(""), logger)
110110
val retCode = tryRun(
111111
cache,
112112
remainingArgs,

modules/cli/src/main/scala/scala/cli/commands/pgp/PgpPush.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ object PgpPush extends ScalaCommand[PgpPushOptions] {
3131
sys.exit(1)
3232
}
3333

34-
lazy val coursierCache = options.coursier.coursierCache(logger.coursierLogger(""))
34+
lazy val coursierCache = options.coursier.coursierCache(logger.coursierLogger(""), logger)
3535

3636
for (key <- all) {
3737
val path = os.Path(key, os.pwd)

modules/cli/src/main/scala/scala/cli/commands/publish/PublishSetup.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ object PublishSetup extends ScalaCommand[PublishSetupOptions] {
4242
): Unit = {
4343
Publish.maybePrintLicensesAndExit(options.publishParams)
4444

45-
val coursierCache = options.coursier.coursierCache(logger.coursierLogger(""))
45+
val coursierCache = options.coursier.coursierCache(logger.coursierLogger(""), logger)
4646
val directories = Directories.directories
4747

4848
lazy val configDb = ConfigDbUtils.configDb.orExit(logger)

modules/cli/src/main/scala/scala/cli/commands/shared/CoursierOptions.scala

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@ import com.github.plokhotnyuk.jsoniter_scala.core.*
55
import com.github.plokhotnyuk.jsoniter_scala.macros.*
66
import coursier.cache.{CacheLogger, CachePolicy, FileCache}
77

8+
import scala.build.Logger
89
import scala.build.internals.EnvVar
910
import scala.cli.commands.tags
11+
import scala.cli.config.Keys
12+
import scala.cli.util.ConfigDbUtils
1013
import scala.concurrent.duration.Duration
1114

1215
// format: off
@@ -39,24 +42,25 @@ final case class CoursierOptions(
3942
private def validateChecksums =
4043
coursierValidateChecksums.getOrElse(true)
4144

42-
def coursierCache(logger: CacheLogger) = {
43-
var baseCache = FileCache().withLogger(logger)
45+
def coursierCache(cacheLogger: CacheLogger, cliLogger: Logger) = {
46+
var baseCache = FileCache().withLogger(cacheLogger)
4447
if (!validateChecksums)
4548
baseCache = baseCache.withChecksums(Nil)
4649
val ttlOpt = ttl.map(_.trim).filter(_.nonEmpty).map(Duration(_))
4750
for (ttl0 <- ttlOpt)
4851
baseCache = baseCache.withTtl(ttl0)
4952
for (loc <- cache.filter(_.trim.nonEmpty))
5053
baseCache = baseCache.withLocation(loc)
51-
for (isOffline <- getOffline() if isOffline)
54+
for (isOffline <- getOffline(cliLogger) if isOffline)
5255
baseCache = baseCache.withCachePolicies(Seq(CachePolicy.LocalOnly))
5356

5457
baseCache
5558
}
5659

57-
def getOffline(): Option[Boolean] = offline
60+
def getOffline(logger: Logger): Option[Boolean] = offline
5861
.orElse(EnvVar.Coursier.coursierMode.valueOpt.map(_ == "offline"))
5962
.orElse(Option(System.getProperty("coursier.mode")).map(_ == "offline"))
63+
.orElse(ConfigDbUtils.getConfigDbOpt(logger).flatMap(_.get(Keys.offline).toOption.flatten))
6064
}
6165

6266
object CoursierOptions {

0 commit comments

Comments
 (0)