diff --git a/build.sbt b/build.sbt index 7a837d9c..dc59e8e3 100644 --- a/build.sbt +++ b/build.sbt @@ -1,5 +1,4 @@ import com.github.eikek.sbt.openapi._ -import scala.sys.process._ import com.typesafe.sbt.SbtGit.GitKeys._ import docspell.build._ import de.heikoseeberger.sbtheader.CommentBlockCreator @@ -997,13 +996,12 @@ def compileElm( logger.info("Compile elm files ...") val target = outBase / "META-INF" / "resources" / "webjars" / artifact / version / "docspell-app.js" - val cmd = Seq("elm", "make") ++ mode.flags ++ Seq("--output", target.toString) - val proc = Process( - cmd ++ Seq(wd / "src" / "main" / "elm" / "Main.elm").map(_.toString), - Some(wd) - ) - val out = proc.!! - logger.info(out) + val cmd = (Seq("elm", "make") + ++ mode.flags + ++ Seq("--output", target.toString) + ++ Seq(wd / "src" / "main" / "elm" / "Main.elm").map(_.toString) + ) + Cmd.run(cmd, wd, logger) val targetGZ = file(target.toString + ".gz") IO.gzip(target, targetGZ) Seq(target, targetGZ) diff --git a/project/Cmd.scala b/project/Cmd.scala index cf5535f5..a9e0a8d9 100644 --- a/project/Cmd.scala +++ b/project/Cmd.scala @@ -23,8 +23,13 @@ object Cmd { } def exec(cmd: Seq[String], wd: Option[File]): Result = { + val command = + sys.props.get("os.name").getOrElse("").toLowerCase match { + case win if win.startsWith("windows") => Seq ("cmd", "/C") ++ cmd + case _ => cmd + } val capt = new Capture - val rc = Process(cmd, wd).!(capt.logger) + val rc = Process(command, wd).!(capt.logger) Result(rc, capt.out.get.mkString("\n"), capt.err.get.mkString("\n")) }