Skip to content

Commit b517bf2

Browse files
committed
Allow to use positional commands instead of required options
1 parent 105a7e0 commit b517bf2

File tree

15 files changed

+238
-294
lines changed

15 files changed

+238
-294
lines changed

build.sbt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
scalaVersion := "2.12.15"
22
val nativeVersion = "0.4.1"
3-
val cliVersion = nativeVersion
3+
val cliVersion = nativeVersion + "-SNAPSHOT"
44

55
inThisBuild(
66
Def.settings(
@@ -10,16 +10,16 @@ inThisBuild(
1010
)
1111

1212
lazy val cli = project
13-
.in(file(s"cli/version_${nativeVersion}"))
13+
.in(file(s"cli"))
1414
.settings(
1515
moduleName := "scala-native-cli",
1616
scalacOptions += "-Ywarn-unused:imports",
1717
libraryDependencies += "org.scala-native" %% "tools" % nativeVersion,
18-
libraryDependencies += "com.github.alexarchambault" %% "case-app" % "2.1.0-M9",
18+
libraryDependencies += "com.github.alexarchambault" %% "case-app" % "2.1.0-M10",
1919
libraryDependencies += "org.scalatest" %% "scalatest" % "3.1.1" % Test,
2020
assembly / assemblyJarName := "scala-native-cli.jar", // Used for integration tests.
21-
Compile / unmanagedSourceDirectories += baseDirectory.value.getParentFile / "shared/src/main/scala",
22-
Test / unmanagedSourceDirectories += baseDirectory.value.getParentFile / "shared/src/test/scala"
21+
Compile / unmanagedSourceDirectories += baseDirectory.value / s"version_${nativeVersion}/src/main/scala",
22+
Test / unmanagedSourceDirectories += baseDirectory.value / s"version_${nativeVersion}/src/test/scala"
2323
)
2424

2525
// Meant to resolve classpath dependencies, provide compiled nir

cli/shared/src/main/scala/scala/scalanative/cli/ScalaNativeCli.scala

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

cli/shared/src/test/scala/scala/scalanative/cli/ArgParserTest.scala

Lines changed: 0 additions & 193 deletions
This file was deleted.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package scala.scalanative.cli
2+
3+
import scala.scalanative.build.Build
4+
import scala.scalanative.util.Scope
5+
import scala.scalanative.cli.utils.ConfigConverter
6+
import scala.scalanative.cli.utils.NativeConfigParserImplicits._
7+
import scala.scalanative.cli.options.CliOptions
8+
import caseapp.core.app.CaseApp
9+
import caseapp.core.RemainingArgs
10+
11+
object ScalaNativeCli extends CaseApp[CliOptions] {
12+
13+
def run(options: CliOptions, args: RemainingArgs) = {
14+
val positionalArgs = args.all
15+
val buildOptionsMaybe = ConfigConverter.convert(options, positionalArgs)
16+
17+
buildOptionsMaybe.map { buildOptions =>
18+
Scope { implicit scope =>
19+
Build.build(buildOptions.config, buildOptions.outpath)
20+
}
21+
}
22+
}
23+
}

cli/shared/src/main/scala/scala/scalanative/cli/options/CliOptions.scala renamed to cli/src/main/scala/scala/scalanative/cli/options/CliOptions.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ package scala.scalanative.cli.options
22

33
import caseapp._
44

5-
@AppName("Scala Native Cli")
5+
@AppName("ScalaNativeCli")
66
@ProgName("scala-native-cli")
7+
@ArgsName("main] [nir-files")
78
case class CliOptions(
89
@Recurse
910
config: ConfigOptions,

cli/shared/src/main/scala/scala/scalanative/cli/options/ConfigOptions.scala renamed to cli/src/main/scala/scala/scalanative/cli/options/ConfigOptions.scala

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,6 @@ case class ConfigOptions(
1010
@ValueDescription("<output-path>")
1111
outpath: String = "scala-native-out",
1212
@Group("Config")
13-
@HelpMessage(
14-
"Required sequence of all linked NIR files. Should include the standard Scala Native libraries."
15-
)
16-
@ValueDescription("<colon-separated-file-paths>")
17-
classPath: String,
18-
@Group("Config")
19-
@HelpMessage("Required entry point for linking.")
20-
@ValueDescription("<main-class>")
21-
main: String,
22-
@Group("Config")
2313
@HelpMessage("Scala Native working directory. [.]")
2414
@ValueDescription("<path-to-directory>")
2515
workdir: String = "."

0 commit comments

Comments
 (0)