Merge pull request #206954 from Homebrew/bump-gollama-1.28.13
[homebrew-core.git] / Formula / d / djl-serving.rb
blob4b5b08302b76113c88c8b1f0057d1e19bd302f9d
1 class DjlServing < Formula
2   desc "This module contains an universal model serving implementation"
3   homepage "https://github.com/deepjavalibrary/djl-serving"
4   url "https://publish.djl.ai/djl-serving/serving-0.31.0.tar"
5   sha256 "c56c91063d822f00e1d9d6cc6049e9d55a5f2e586920a5b29e4c1e6ab8b28daa"
6   license "Apache-2.0"
8   # `djl-serving` versions aren't considered released until a corresponding
9   # release is created in the main `deepjavalibrary/djl` repository.
10   livecheck do
11     url "https://github.com/deepjavalibrary/djl"
12     strategy :github_latest
13   end
15   bottle do
16     sha256 cellar: :any_skip_relocation, all: "fee22666bf7fe1ea8043c52c077dbaf8c9514c86bcd435ae30c3d35199289090"
17   end
19   depends_on "openjdk"
21   def install
22     # Install files
23     rm_r(Dir["bin/*.bat"])
24     mv "bin/serving", "bin/djl-serving"
25     libexec.install Dir["*"]
26     env = { MODEL_SERVER_HOME: "${MODEL_SERVER_HOME:-#{var}}" }
27     env.merge!(Language::Java.overridable_java_home_env)
28     (bin/"djl-serving").write_env_script "#{libexec}/bin/djl-serving", env
29   end
31   service do
32     run [opt_bin/"djl-serving", "run"]
33     keep_alive true
34   end
36   test do
37     port = free_port
38     (testpath/"config.properties").write <<~EOS
39       inference_address=http://127.0.0.1:#{port}
40       management_address=http://127.0.0.1:#{port}
41     EOS
42     ENV["MODEL_SERVER_HOME"] = testpath
43     cp_r Dir["#{libexec}/*"], testpath
44     fork do
45       exec bin/"djl-serving -f config.properties"
46     end
47     sleep 30
48     cmd = "http://127.0.0.1:#{port}/ping"
49     assert_match "{}\n", shell_output("curl --fail #{cmd}")
50   end
51 end