summaryrefslogtreecommitdiff
path: root/scalajslib/src
diff options
context:
space:
mode:
authorNikolay Tatarinov <5min4eq.unity@gmail.com>2018-02-09 01:41:15 +0300
committerGitHub <noreply@github.com>2018-02-09 01:41:15 +0300
commit52f3e614181d158a82c166905f375924d2d6e046 (patch)
treea26bb94702d606340c664a6ee7096fb5eeb83f11 /scalajslib/src
parente381552b992a5ba4743fa54f5111db9a2e9d98e2 (diff)
downloadmill-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.scala6
-rw-r--r--scalajslib/src/mill/scalajslib/ScalaJSModule.scala31
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],