Merge pull request #1461 from arittner/buildonwindows-cmd

Build: Fix shell script run under Windows OS
This commit is contained in:
eikek
2022-03-21 21:05:38 +01:00
committed by GitHub
2 changed files with 12 additions and 9 deletions

View File

@ -1,5 +1,4 @@
import com.github.eikek.sbt.openapi._ import com.github.eikek.sbt.openapi._
import scala.sys.process._
import com.typesafe.sbt.SbtGit.GitKeys._ import com.typesafe.sbt.SbtGit.GitKeys._
import docspell.build._ import docspell.build._
import de.heikoseeberger.sbtheader.CommentBlockCreator import de.heikoseeberger.sbtheader.CommentBlockCreator
@ -1015,13 +1014,11 @@ def compileElm(
logger.info("Compile elm files ...") logger.info("Compile elm files ...")
val target = val target =
outBase / "META-INF" / "resources" / "webjars" / artifact / version / "docspell-app.js" outBase / "META-INF" / "resources" / "webjars" / artifact / version / "docspell-app.js"
val cmd = Seq("elm", "make") ++ mode.flags ++ Seq("--output", target.toString) val cmd = (Seq("elm", "make")
val proc = Process( ++ mode.flags
cmd ++ Seq(wd / "src" / "main" / "elm" / "Main.elm").map(_.toString), ++ Seq("--output", target.toString)
Some(wd) ++ Seq(wd / "src" / "main" / "elm" / "Main.elm").map(_.toString))
) Cmd.run(cmd, wd, logger)
val out = proc.!!
logger.info(out)
val targetGZ = file(target.toString + ".gz") val targetGZ = file(target.toString + ".gz")
IO.gzip(target, targetGZ) IO.gzip(target, targetGZ)
Seq(target, targetGZ) Seq(target, targetGZ)

View File

@ -23,8 +23,14 @@ object Cmd {
} }
def exec(cmd: Seq[String], wd: Option[File]): Result = { def exec(cmd: Seq[String], wd: Option[File]): Result = {
val command =
sys.props.get("os.name") match {
case Some(name) if name.toLowerCase.startsWith("windows") =>
Seq("cmd", "/C") ++ cmd
case _ => cmd
}
val capt = new Capture 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")) Result(rc, capt.out.get.mkString("\n"), capt.err.get.mkString("\n"))
} }