46 lines
1.5 KiB
Ruby
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
|