Skip to content

Commit c583bd5

Browse files
committed
Fail export with a meaningful message if --test is passed
1 parent 020e601 commit c583bd5

File tree

4 files changed

+15
-3
lines changed

4 files changed

+15
-3
lines changed

modules/cli/src/main/scala/scala/cli/commands/export0/Export.scala

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,14 @@ object Export extends ScalaCommand[ExportOptions] {
136136
override def sharedOptions(opts: ExportOptions): Option[SharedOptions] = Some(opts.shared)
137137

138138
override def runCommand(options: ExportOptions, args: RemainingArgs, logger: Logger): Unit = {
139+
if options.scope.test then {
140+
logger.error(
141+
s"""Including the test scope sources together with the main scope is currently not supported.
142+
|Note that test scope sources will still be exported as per the output build tool tests definition demands.""".stripMargin
143+
)
144+
sys.exit(1)
145+
}
146+
139147
val initialBuildOptions = buildOptionsOrExit(options)
140148

141149
val output = options.output.getOrElse("dest")

modules/cli/src/main/scala/scala/cli/commands/export0/ExportOptions.scala

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import scala.cli.commands.shared.{
88
HelpGroup,
99
HelpMessages,
1010
MainClassOptions,
11+
ScopeOptions,
1112
SharedOptions
1213
}
1314
import scala.cli.commands.tags
@@ -83,7 +84,10 @@ final case class ExportOptions(
8384
@Name("o")
8485
@Group(HelpGroup.BuildToolExport.toString)
8586
@Tag(tags.restricted)
86-
output: Option[String] = None
87+
output: Option[String] = None,
88+
89+
@Recurse
90+
scope: ScopeOptions = ScopeOptions()
8791
) extends HasSharedOptions
8892
// format: on
8993
object ExportOptions {

website/docs/reference/cli-options.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1534,7 +1534,7 @@ Run scalafix rule(s) explicitly, overriding the configuration file default.
15341534

15351535
Available in commands:
15361536

1537-
[`compile`](./commands.md#compile), [`doc`](./commands.md#doc), [`package`](./commands.md#package), [`publish`](./commands.md#publish), [`publish local`](./commands.md#publish-local), [`repl` , `console`](./commands.md#repl), [`run`](./commands.md#run), [`shebang`](./commands.md#shebang)
1537+
[`compile`](./commands.md#compile), [`doc`](./commands.md#doc), [`export`](./commands.md#export), [`package`](./commands.md#package), [`publish`](./commands.md#publish), [`publish local`](./commands.md#publish-local), [`repl` , `console`](./commands.md#repl), [`run`](./commands.md#run), [`shebang`](./commands.md#shebang)
15381538

15391539
<!-- Automatically generated, DO NOT EDIT MANUALLY -->
15401540

website/docs/reference/commands.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ The `export` sub-command is experimental.
116116
Please bear in mind that non-ideal user experience should be expected.
117117
If you encounter any bugs or have feedback to share, make sure to reach out to the maintenance team at https://github.com/VirtusLab/scala-cli
118118

119-
Accepts option groups: [benchmarking](./cli-options.md#benchmarking-options), [compilation server](./cli-options.md#compilation-server-options), [coursier](./cli-options.md#coursier-options), [debug](./cli-options.md#debug-options), [dependency](./cli-options.md#dependency-options), [export](./cli-options.md#export-options), [global suppress warning](./cli-options.md#global-suppress-warning-options), [help group](./cli-options.md#help-group-options), [input](./cli-options.md#input-options), [jvm](./cli-options.md#jvm-options), [logging](./cli-options.md#logging-options), [main class](./cli-options.md#main-class-options), [markdown](./cli-options.md#markdown-options), [power](./cli-options.md#power-options), [python](./cli-options.md#python-options), [Scala.js](./cli-options.md#scalajs-options), [Scala Native](./cli-options.md#scala-native-options), [scalac](./cli-options.md#scalac-options), [scalac extra](./cli-options.md#scalac-extra-options), [semantic db](./cli-options.md#semantic-db-options), [shared](./cli-options.md#shared-options), [snippet](./cli-options.md#snippet-options), [source generator](./cli-options.md#source-generator-options), [suppress warning](./cli-options.md#suppress-warning-options), [verbosity](./cli-options.md#verbosity-options), [version](./cli-options.md#version-options), [workspace](./cli-options.md#workspace-options)
119+
Accepts option groups: [benchmarking](./cli-options.md#benchmarking-options), [compilation server](./cli-options.md#compilation-server-options), [coursier](./cli-options.md#coursier-options), [debug](./cli-options.md#debug-options), [dependency](./cli-options.md#dependency-options), [export](./cli-options.md#export-options), [global suppress warning](./cli-options.md#global-suppress-warning-options), [help group](./cli-options.md#help-group-options), [input](./cli-options.md#input-options), [jvm](./cli-options.md#jvm-options), [logging](./cli-options.md#logging-options), [main class](./cli-options.md#main-class-options), [markdown](./cli-options.md#markdown-options), [power](./cli-options.md#power-options), [python](./cli-options.md#python-options), [Scala.js](./cli-options.md#scalajs-options), [Scala Native](./cli-options.md#scala-native-options), [scalac](./cli-options.md#scalac-options), [scalac extra](./cli-options.md#scalac-extra-options), [scope](./cli-options.md#scope-options), [semantic db](./cli-options.md#semantic-db-options), [shared](./cli-options.md#shared-options), [snippet](./cli-options.md#snippet-options), [source generator](./cli-options.md#source-generator-options), [suppress warning](./cli-options.md#suppress-warning-options), [verbosity](./cli-options.md#verbosity-options), [version](./cli-options.md#version-options), [workspace](./cli-options.md#workspace-options)
120120

121121
## fix
122122

0 commit comments

Comments
 (0)