homebrew-core/Formula/scm-manager.rb

46 lines
1.5 KiB
Ruby

class ScmManager < Formula
desc "Manage Git, Mercurial, and Subversion repos over HTTP"
homepage "https://www.scm-manager.org"
url "https://packages.scm-manager.org/repository/releases/sonia/scm/packaging/unix/2.32.1/unix-2.32.1.tar.gz"
sha256 "da4f3437e69c8b9954d590f6cdd4154a58c62376700cd415a4d3d0862e14ec70"
license all_of: ["Apache-2.0", "MIT"]
bottle do
sha256 cellar: :any_skip_relocation, all: "29ae96d30e53f7cbb394225b681cd021dde8dd5267b68f71e0baf2bd24b8ffcf"
end
depends_on "jsvc"
depends_on "openjdk"
def install
# Replace pre-built `jsvc` with formula to add Apple Silicon support
inreplace "bin/scm-server", %r{ \$BASEDIR/libexec/jsvc-.*"}, " #{Formula["jsvc"].opt_bin}/jsvc\""
rm Dir["libexec/jsvc-*"]
libexec.install Dir["*"]
env = Language::Java.overridable_java_home_env
env["BASEDIR"] = libexec
env["REPO"] = libexec/"lib"
(bin/"scm-server").write_env_script libexec/"bin/scm-server", env
end
service do
run [opt_bin/"scm-server"]
end
test do
port = free_port
cp_r (libexec/"conf").children, testpath
inreplace testpath/"server-config.xml" do |s|
s.gsub! %r{<SystemProperty .*/>/work}, testpath/"work"
s.gsub! "default=\"8080\"", "default=\"#{port}\""
end
ENV["JETTY_BASE"] = testpath
pid = fork { exec bin/"scm-server" }
sleep 30
assert_match "<title>SCM-Manager</title>", shell_output("curl http://localhost:#{port}/scm/")
ensure
Process.kill "TERM", pid
end
end