Skip to content

Commit 9f9cb73

Browse files
authored
Stop reading global bloop config (#672)
* Stop reading global bloop config
1 parent 77eb68c commit 9f9cb73

File tree

1 file changed

+24
-21
lines changed

1 file changed

+24
-21
lines changed

modules/cli/src/main/scala/scala/cli/commands/SharedCompilationServerOptions.scala

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import java.util.Random
1313

1414
import scala.build.blooprifle.internal.Constants
1515
import scala.build.blooprifle.{BloopRifleConfig, BloopVersion, BspConnectionAddress}
16+
import scala.build.internal.Util
1617
import scala.build.{Bloop, Logger, Os}
1718
import scala.cli.internal.Pid
1819
import scala.concurrent.duration.{Duration, FiniteDuration}
@@ -80,7 +81,7 @@ final case class SharedCompilationServerOptions(
8081
@Group("Compilation server")
8182
@HelpMessage("Bloop global options file")
8283
@Hidden
83-
bloopGlobalOptionsFile: String = (os.home / ".bloop" / "bloop.json").toString,
84+
bloopGlobalOptionsFile: Option[String] = None,
8485

8586
@Group("Compilation server")
8687
@HelpMessage("JVM to use to start Bloop (e.g. 'system|11', 'temurin:17', …)")
@@ -187,26 +188,28 @@ final case class SharedCompilationServerOptions(
187188
BloopVersion(Constants.bloopVersion)
188189
))(v => BloopRifleConfig.Strict(BloopVersion(v)))
189190

190-
def bloopDefaultJvmOptions(logger: Logger): List[String] = {
191-
val filePath = os.Path(bloopGlobalOptionsFile, Os.pwd)
192-
if (os.exists(filePath) && os.isFile(filePath))
193-
try {
194-
val json = ujson.read(
195-
os.read(filePath: os.ReadablePath, charSet = Codec(Charset.defaultCharset()))
196-
)
197-
val bloopJson = upickle.default.read(json)(BloopJson.jsonCodec)
198-
bloopJson.javaOptions
199-
}
200-
catch {
201-
case e: Throwable =>
202-
System.err.println(s"Error parsing global bloop config in '$filePath':")
203-
e.printStackTrace()
191+
def bloopDefaultJvmOptions(logger: Logger): Option[List[String]] = {
192+
val filePathOpt = bloopGlobalOptionsFile.filter(_.trim.nonEmpty).map(os.Path(_, Os.pwd))
193+
for (filePath <- filePathOpt)
194+
yield
195+
if (os.exists(filePath) && os.isFile(filePath))
196+
try {
197+
val json = ujson.read(
198+
os.read(filePath: os.ReadablePath, charSet = Codec(Charset.defaultCharset()))
199+
)
200+
val bloopJson = upickle.default.read(json)(BloopJson.jsonCodec)
201+
bloopJson.javaOptions
202+
}
203+
catch {
204+
case e: Throwable =>
205+
logger.message(s"Error parsing global bloop config in '$filePath':")
206+
Util.printException(e)
207+
List.empty
208+
}
209+
else {
210+
logger.message(s"Bloop global options file '$filePath' not found.")
204211
List.empty
205-
}
206-
else {
207-
logger.debug(s"Bloop global options file '$filePath' not found.")
208-
List.empty
209-
}
212+
}
210213
}
211214

212215
def bloopRifleConfig(
@@ -267,7 +270,7 @@ final case class SharedCompilationServerOptions(
267270
initTimeout = bloopStartupTimeoutDuration.getOrElse(baseConfig.initTimeout),
268271
javaOpts =
269272
(if (bloopDefaultJavaOpts) baseConfig.javaOpts
270-
else Nil) ++ bloopJavaOpt ++ bloopDefaultJvmOptions(logger),
273+
else Nil) ++ bloopJavaOpt ++ bloopDefaultJvmOptions(logger).getOrElse(Nil),
271274
minimumBloopJvm = javaV.getOrElse(8),
272275
retainedBloopVersion = retainedBloopVersion
273276
)

0 commit comments

Comments
 (0)