Skip to content

Commit 30680c2

Browse files
Merge pull request #1552 from alexarchambault/remove-cli-options-module
Remove cli-options module
2 parents ca02f6e + b41a6c7 commit 30680c2

File tree

157 files changed

+1688
-1765
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

157 files changed

+1688
-1765
lines changed

build.sc

Lines changed: 36 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,18 @@ implicit def millModuleBasePath: define.BasePath =
3939

4040
object cli extends Cli
4141

42-
object `cli-options` extends CliOptions
43-
object `build-macros` extends BuildMacros
44-
object config extends Cross[Config](Scala.all: _*)
45-
object options extends Options
46-
object scalaparse extends ScalaParse
47-
object directives extends Directives
48-
object core extends Core
49-
object `build-module` extends Build
50-
object runner extends Cross[Runner](Scala.runnerScalaVersions: _*)
51-
object `test-runner` extends Cross[TestRunner](Scala.runnerScalaVersions: _*)
52-
object `bloop-rifle` extends Cross[BloopRifle](Scala.all: _*)
53-
object `tasty-lib` extends Cross[TastyLib](Scala.all: _*)
42+
object `specification-level` extends SpecificationLevel
43+
object `build-macros` extends BuildMacros
44+
object config extends Cross[Config](Scala.all: _*)
45+
object options extends Options
46+
object scalaparse extends ScalaParse
47+
object directives extends Directives
48+
object core extends Core
49+
object `build-module` extends Build
50+
object runner extends Cross[Runner](Scala.runnerScalaVersions: _*)
51+
object `test-runner` extends Cross[TestRunner](Scala.runnerScalaVersions: _*)
52+
object `bloop-rifle` extends Cross[BloopRifle](Scala.all: _*)
53+
object `tasty-lib` extends Cross[TastyLib](Scala.all: _*)
5454
// Runtime classes used within native image on Scala 3 replacing runtime from Scala
5555
object `scala3-runtime` extends Scala3Runtime
5656
// Logic to process classes that is shared between build and the scala-cli itself
@@ -416,7 +416,7 @@ trait Directives extends ScalaCliSbtModule with ScalaCliPublishModule with HasTe
416416
options,
417417
core,
418418
`build-macros`,
419-
`cli-options`
419+
`specification-level`
420420
)
421421
def scalacOptions = T {
422422
super.scalacOptions() ++ asyncScalacOptions(scalaVersion())
@@ -639,7 +639,7 @@ trait Build extends ScalaCliSbtModule with ScalaCliPublishModule with HasTests
639639
}
640640
}
641641

642-
trait CliOptions extends SbtModule with ScalaCliPublishModule {
642+
trait SpecificationLevel extends SbtModule with ScalaCliPublishModule {
643643
def scalacOptions = T {
644644
val sv = scalaVersion()
645645
val isScala213 = sv.startsWith("2.13.")
@@ -648,65 +648,53 @@ trait CliOptions extends SbtModule with ScalaCliPublishModule {
648648
else Nil
649649
super.scalacOptions() ++ extraOptions
650650
}
651-
def ivyDeps = super.ivyDeps() ++ Agg(
652-
Deps.caseApp,
653-
Deps.jsoniterCore213,
654-
Deps.osLib,
655-
Deps.signingCli.exclude((organization, "config_2.13"))
656-
)
657-
def compileIvyDeps = super.compileIvyDeps() ++ Seq(
658-
Deps.jsoniterMacros
659-
)
660651
def scalaVersion = Scala.defaultInternal
661-
def repositories = super.repositories ++ customRepositories
652+
}
653+
654+
trait Cli extends SbtModule with ProtoBuildModule with CliLaunchers
655+
with HasMacroAnnotations with FormatNativeImageConf {
662656

663657
def constantsFile = T.persistent {
664658
val dir = T.dest / "constants"
665659
val dest = dir / "Constants.scala"
666660
val code =
667-
s"""package scala.cli.commands
661+
s"""package scala.cli.internal
668662
|
669663
|/** Build-time constants. Generated by mill. */
670664
|object Constants {
671-
| def defaultScalaVersion = "${Scala.defaultUser}"
672-
| def scalaJsVersion = "${Scala.scalaJs}"
673-
| def scalaJsCliVersion = "${InternalDeps.Versions.scalaJsCli}"
674-
| def scalaNativeVersion = "${Deps.nativeTools.dep.version}"
675-
| def ammoniteVersion = "${Deps.ammonite.dep.version}"
676-
| def defaultScalafmtVersion = "${Deps.scalafmtCli.dep.version}"
677-
| def defaultGraalVMJavaVersion = "${deps.graalVmJavaVersion}"
678-
| def defaultGraalVMVersion = "${deps.graalVmVersion}"
679-
| def scalaPyVersion = "${Deps.scalaPy.dep.version}"
665+
| def launcherTypeResourcePath = "${launcherTypeResourcePath.toString}"
666+
| def defaultFilesResourcePath = "$defaultFilesResourcePath"
667+
| def maxAmmoniteScala3Version = "${Scala.maxAmmoniteScala3Version}"
680668
|}
681669
|""".stripMargin
682670
if (!os.isFile(dest) || os.read(dest) != code)
683671
os.write.over(dest, code, createFolders = true)
684672
PathRef(dir)
685673
}
686-
def generatedSources = super.generatedSources() ++ Seq(constantsFile())
687-
}
688-
689-
trait Cli extends SbtModule with ProtoBuildModule with CliLaunchers
690-
with HasMacroAnnotations with FormatNativeImageConf {
691-
692-
def constantsFile = T.persistent {
674+
def optionsConstantsFile = T.persistent {
693675
val dir = T.dest / "constants"
694676
val dest = dir / "Constants.scala"
695677
val code =
696-
s"""package scala.cli.internal
678+
s"""package scala.cli.commands
697679
|
698680
|/** Build-time constants. Generated by mill. */
699681
|object Constants {
700-
| def launcherTypeResourcePath = "${launcherTypeResourcePath.toString}"
701-
| def defaultFilesResourcePath = "$defaultFilesResourcePath"
702-
| def maxAmmoniteScala3Version = "${Scala.maxAmmoniteScala3Version}"
682+
| def defaultScalaVersion = "${Scala.defaultUser}"
683+
| def scalaJsVersion = "${Scala.scalaJs}"
684+
| def scalaJsCliVersion = "${InternalDeps.Versions.scalaJsCli}"
685+
| def scalaNativeVersion = "${Deps.nativeTools.dep.version}"
686+
| def ammoniteVersion = "${Deps.ammonite.dep.version}"
687+
| def defaultScalafmtVersion = "${Deps.scalafmtCli.dep.version}"
688+
| def defaultGraalVMJavaVersion = "${deps.graalVmJavaVersion}"
689+
| def defaultGraalVMVersion = "${deps.graalVmVersion}"
690+
| def scalaPyVersion = "${Deps.scalaPy.dep.version}"
703691
|}
704692
|""".stripMargin
705693
if (!os.isFile(dest) || os.read(dest) != code)
706694
os.write.over(dest, code, createFolders = true)
707695
PathRef(dir)
708696
}
709-
def generatedSources = super.generatedSources() ++ Seq(constantsFile())
697+
def generatedSources = super.generatedSources() ++ Seq(constantsFile(), optionsConstantsFile())
710698

711699
def defaultFilesResources = T.persistent {
712700
val dir = T.dest / "resources"
@@ -752,7 +740,8 @@ trait Cli extends SbtModule with ProtoBuildModule with CliLaunchers
752740
def moduleDeps = Seq(
753741
`build-module`,
754742
config(Scala.scala3),
755-
`scala3-graal`(Scala.scala3)
743+
`scala3-graal`(Scala.scala3),
744+
`specification-level`
756745
)
757746

758747
def repositories = super.repositories ++ customRepositories

modules/build/src/main/scala/scala/build/Build.scala

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,28 +65,31 @@ object Build {
6565
mainClasses: Seq[String],
6666
commandString: String,
6767
logger: Logger
68-
): Either[MainClassError, String] = {
68+
): Either[BuildException, String] = {
6969
val defaultMainClassOpt = sources.defaultMainClass
7070
.filter(name => mainClasses.contains(name))
71-
def foundMainClass =
71+
def foundMainClass: Either[BuildException, String] =
7272
mainClasses match {
7373
case Seq() => Left(new NoMainClassFoundError)
7474
case Seq(mainClass) => Right(mainClass)
7575
case _ =>
76-
inferredMainClass(mainClasses, logger).left.flatMap { mainClasses =>
77-
options.interactive
78-
.chooseOne(
79-
"Found several main classes. Which would you like to run?",
80-
mainClasses.toList
81-
)
82-
.toRight {
83-
SeveralMainClassesFoundError(
84-
::(mainClasses.head, mainClasses.tail.toList),
85-
commandString,
86-
Nil
87-
)
76+
inferredMainClass(mainClasses, logger)
77+
.left.flatMap { mainClasses =>
78+
options.interactive.flatMap { interactive =>
79+
interactive
80+
.chooseOne(
81+
"Found several main classes. Which would you like to run?",
82+
mainClasses.toList
83+
)
84+
.toRight {
85+
SeveralMainClassesFoundError(
86+
::(mainClasses.head, mainClasses.tail.toList),
87+
commandString,
88+
Nil
89+
)
90+
}
8891
}
89-
}
92+
}
9093
}
9194

9295
defaultMainClassOpt match {

modules/cli-options/src/main/scala/scala/cli/commands/PackageOptions.scala

Lines changed: 0 additions & 101 deletions
This file was deleted.

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

Lines changed: 0 additions & 92 deletions
This file was deleted.

0 commit comments

Comments
 (0)