diff options
author | Nikolay Tatarinov <5min4eq.unity@gmail.com> | 2018-02-09 01:41:15 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-09 01:41:15 +0300 |
commit | 52f3e614181d158a82c166905f375924d2d6e046 (patch) | |
tree | a26bb94702d606340c664a6ee7096fb5eeb83f11 /scalajslib/src | |
parent | e381552b992a5ba4743fa54f5111db9a2e9d98e2 (diff) | |
download | mill-52f3e614181d158a82c166905f375924d2d6e046.tar.gz mill-52f3e614181d158a82c166905f375924d2d6e046.tar.bz2 mill-52f3e614181d158a82c166905f375924d2d6e046.zip |
scala.js run (#127)
scala.js run command
Diffstat (limited to 'scalajslib/src')
-rw-r--r-- | scalajslib/src/mill/scalajslib/ScalaJSBridge.scala | 6 | ||||
-rw-r--r-- | scalajslib/src/mill/scalajslib/ScalaJSModule.scala | 31 |
2 files changed, 37 insertions, 0 deletions
diff --git a/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala b/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala index 780fa09e..7c9834b0 100644 --- a/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala +++ b/scalajslib/src/mill/scalajslib/ScalaJSBridge.scala @@ -50,6 +50,10 @@ class ScalaJSWorker { ) } + def run(toolsClasspath: Agg[Path], linkedFile: File): Unit = { + bridge(toolsClasspath).run(linkedFile) + } + def getFramework(toolsClasspath: Agg[Path], frameworkName: String, linkedFile: File): sbt.testing.Framework = { @@ -65,6 +69,8 @@ trait ScalaJSBridge { main: String, fullOpt: Boolean): Unit + def run(linkedFile: File): Unit + def getFramework(frameworkName: String, linkedFile: File): sbt.testing.Framework diff --git a/scalajslib/src/mill/scalajslib/ScalaJSModule.scala b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala index 462fef5a..86ebd53d 100644 --- a/scalajslib/src/mill/scalajslib/ScalaJSModule.scala +++ b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala @@ -89,6 +89,37 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => ) } + override def runLocal(args: String*) = T.command { run(args:_*) } + + override def run(args: String*) = T.command { + if(mainClass().isEmpty) { + throw new RuntimeException("No mainClass provided!") + } + + ScalaJSBridge.scalaJSBridge().run( + toolsClasspath().map(_.path), + fastOpt().path.toIO + ) + } + + override def runMainLocal(mainClass: String, args: String*) = T.command { runMain(mainClass, args:_*) } + + override def runMain(mainClass: String, args: String*) = T.command { + val linkedFile = link( + ScalaJSBridge.scalaJSBridge(), + toolsClasspath(), + Seq(compile()), + compileDepClasspath(), + Some(mainClass), + FastOpt + ) + + ScalaJSBridge.scalaJSBridge().run( + toolsClasspath().map(_.path), + linkedFile.path.toIO + ) + } + def link(worker: ScalaJSWorker, toolsClasspath: Agg[PathRef], input: Seq[CompilationResult], |