class Cromwell < Formula desc "Workflow Execution Engine using Workflow Description Language" homepage "https://github.com/broadinstitute/cromwell" url "https://github.com/broadinstitute/cromwell/releases/download/76/cromwell-76.jar" sha256 "0c9fea35ddb8d6a4a5751d08de90da87c8a9fc6128d3861843555bdfcf4a7e84" license "BSD-3-Clause" bottle do sha256 cellar: :any_skip_relocation, all: "eed65ed4cb8ea82ac26c560cf20e5cc5786b4e757eb58745d991629f60d18dec" end head do url "https://github.com/broadinstitute/cromwell.git" depends_on "sbt" => :build end depends_on "openjdk" resource "womtool" do url "https://github.com/broadinstitute/cromwell/releases/download/76/womtool-76.jar" sha256 "c633ee4ae53d899d196b84a1cea9a013841d3c8ad0ee28b2a831c185bd585988" end def install if build.head? system "sbt", "assembly" libexec.install Dir["server/target/scala-*/cromwell-*.jar"][0] => "cromwell.jar" libexec.install Dir["womtool/target/scala-*/womtool-*.jar"][0] => "womtool.jar" else libexec.install "cromwell-#{version}.jar" => "cromwell.jar" resource("womtool").stage do libexec.install "womtool-#{version}.jar" => "womtool.jar" end end (bin/"cromwell").write <<~EOS #!/bin/bash exec "#{Formula["openjdk"].opt_bin}/java" $JAVA_OPTS -jar "#{libexec}/cromwell.jar" "$@" EOS (bin/"womtool").write <<~EOS #!/bin/bash exec "#{Formula["openjdk"].opt_bin}/java" -jar "#{libexec}/womtool.jar" "$@" EOS end test do (testpath/"hello.wdl").write <<~EOS task hello { String name command { echo 'hello ${name}!' } output { File response = stdout() } } workflow test { call hello } EOS (testpath/"hello.json").write <<~EOS { "test.hello.name": "world" } EOS result = shell_output("#{bin}/cromwell run --inputs hello.json hello.wdl") assert_match "test.hello.response", result end end