Skip to content

Commit 3315c66

Browse files
committed
Fallback the interactive mode to the global config
1 parent 34ab671 commit 3315c66

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

modules/cli/src/main/scala/scala/cli/commands/util/SharedOptionsUtil.scala

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import scala.build.{options => bo}
2020
import scala.cli.commands.ScalaJsOptions
2121
import scala.cli.commands.util.CommonOps._
2222
import scala.cli.commands.util.SharedCompilationServerOptionsUtil._
23+
import scala.cli.config.{ConfigDb, Keys}
2324
import scala.concurrent.duration._
2425
import scala.util.Properties
2526
import scala.util.control.NonFatal
@@ -212,14 +213,23 @@ object SharedOptionsUtil {
212213
localRepository = LocalRepo.localRepo(directories.directories.localRepoDir),
213214
verbosity = Some(logging.verbosity),
214215
strictBloopJsonCheck = strictBloopJsonCheck,
215-
interactive = logging.verbosityOptions.interactive
216+
interactive = Some(interactiveMode)
216217
),
217218
notForBloopOptions = bo.PostBuildOptions(
218219
scalaJsLinkerOptions = linkerOptions(js)
219220
)
220221
)
221222
}
222223

224+
def interactiveMode: Boolean = logging.verbosityOptions.interactive
225+
.orElse(configDb.get(Keys.interactive).getOrElse(None))
226+
.getOrElse(false)
227+
228+
def configDb: ConfigDb =
229+
ConfigDb.open(v) match
230+
case Left(ex) => logger.exit(ex)
231+
case Right(configDb) => configDb
232+
223233
def downloadJvm(jvmId: String, options: bo.BuildOptions): String = {
224234
implicit val ec = options.finalCache.ec
225235
val javaHomeManager = options.javaHomeManager

modules/cli/src/main/scala/scala/cli/config/ConfigDb.scala

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import java.nio.file.attribute.PosixFilePermission
88

99
import scala.build.Directories
1010
import scala.build.errors.BuildException
11+
import scala.cli.commands.SharedOptions
12+
import scala.cli.commands.util.CommonOps.SharedDirectoriesOptionsOps
1113
import scala.collection.immutable.ListMap
1214
import scala.util.Properties
1315

@@ -225,6 +227,16 @@ object ConfigDb {
225227
def open(directories: Directories): Either[BuildException, ConfigDb] =
226228
open(dbPath(directories))
227229

230+
/** Creates a ConfigDb from Scala CLI [[scala.cli.commands.SharedOptions]]
231+
*
232+
* @param sharedOptions:
233+
* a Scala CLI shared options instance
234+
* @return
235+
* either an error on failure, or a ConfigDb instance on success
236+
*/
237+
def open(sharedOptions: SharedOptions): Either[BuildException, ConfigDb] =
238+
open(sharedOptions.directories.directories)
239+
228240
def empty: ConfigDb =
229241
new ConfigDb(Map())
230242
}

modules/cli/src/main/scala/scala/cli/config/Keys.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ object Keys {
1717

1818
val actions = new Key.BooleanEntry(Seq.empty, "actions")
1919

20+
val interactive = new Key.BooleanEntry(Seq.empty, "interactive")
21+
2022
def all = Seq[Key[_]](
23+
interactive,
2124
actions,
2225
userName,
2326
userEmail,

0 commit comments

Comments
 (0)