Modularize creation of formula
Base step to extract generic variables that we can then reuse for
different version of gerrit in different formulas
Change-Id: Idb9a799c067bd53016e35ed3a9b55f733b551c37
diff --git a/gerrit@3.11.0.rb b/gerrit@3.11.0.rb
index 70e0937..19da31d 100644
--- a/gerrit@3.11.0.rb
+++ b/gerrit@3.11.0.rb
@@ -1,40 +1,17 @@
# typed: false
# frozen_string_literal: true
-class GerritAT3110 < Formula
- desc ""
- homepage "https://www.gerritcodereview.com"
- version "3.11.0"
- url "https://tarball.gerritforge.com/gerrit-3.11.0.tar.gz"
- sha256 "f18c23f6c0911012ec03dbbde09788d4d6d470e977312244c416dd6e0d3b4ae1"
+require_relative "./gerritbase"
- depends_on "openjdk@21"
- depends_on "git"
- depends_on "openssh"
-
- def install
- mkdir_p prefix/"plugins"
- (prefix/"plugins").install "plugins/uploadvalidator.jar"
- (prefix/"plugins").install "plugins/avatars-gravatar.jar"
-
- bin.install "bin/gerrit.war"
- lib.install "lib/out-of-the-box.jar"
-
- mkdir_p var/"gerrit"
- mkdir_p var/"gerrit"/"etc"
- (var/"gerrit"/"etc").install "etc/gerrit.config"
-
- (var/"gerrit/plugins").install_symlink Dir[prefix/"plugins/*"]
- (var/"gerrit/lib").install_symlink Dir[lib/"*"]
-
- system "java", "-jar", bin/"gerrit.war", "init", "-d", (var/"gerrit"), "--batch", "--install-all-plugins", "--no-auto-start"
- ohai ""
- ohai "Gerrit site initialized in " + (var/"gerrit")
- ohai "---------------------------------------------------------"
- ohai " * To start Gerrit: " + (var/"gerrit/bin/gerrit.sh start")
- ohai " * Gerrit will then be available at http://localhost:8080"
- ohai ""
- ohai " * To stop Gerrit: " + (var/"gerrit/bin/gerrit.sh stop")
- ohai ""
+class GerritAT3110 < GerritBase
+ def self.java_version
+ "21"
end
+
+ set_common_dependencies
+
+ version "3.11.0"
+ sha256 "f18c23f6c0911012ec03dbbde09788d4d6d470e977312244c416dd6e0d3b4ae1"
+ url generate_url(version)
+
end
diff --git a/gerritbase.rb b/gerritbase.rb
new file mode 100644
index 0000000..7d0b010
--- /dev/null
+++ b/gerritbase.rb
@@ -0,0 +1,47 @@
+# typed: false
+# frozen_string_literal: true
+
+class GerritBase < Formula
+ def self.generate_url(version)
+ "https://tarball.gerritforge.com/gerrit-" + version + ".tar.gz"
+ end
+
+ def self.java_version
+ "17"
+ end
+
+ def self.set_common_dependencies
+ depends_on "git"
+ depends_on "openjdk@#{java_version}"
+ depends_on "openssh"
+ end
+
+ desc "Gerrit Code Review"
+ homepage "https://www.gerritcodereview.com"
+
+ def install
+ mkdir_p prefix/"plugins"
+ (prefix/"plugins").install "plugins/uploadvalidator.jar"
+ (prefix/"plugins").install "plugins/avatars-gravatar.jar"
+
+ bin.install "bin/gerrit.war"
+ lib.install "lib/out-of-the-box.jar"
+
+ mkdir_p var/"gerrit"
+ mkdir_p var/"gerrit"/"etc"
+ (var/"gerrit"/"etc").install "etc/gerrit.config"
+
+ (var/"gerrit/plugins").install_symlink Dir[prefix/"plugins/*"]
+ (var/"gerrit/lib").install_symlink Dir[lib/"*"]
+
+ system "java", "-jar", bin/"gerrit.war", "init", "-d", (var/"gerrit"), "--batch", "--install-all-plugins", "--no-auto-start"
+ ohai ""
+ ohai "Gerrit site initialized in " + (var/"gerrit")
+ ohai "---------------------------------------------------------"
+ ohai " * To start Gerrit: " + (var/"gerrit/bin/gerrit.sh start")
+ ohai " * Gerrit will then be available at http://localhost:8080"
+ ohai ""
+ ohai " * To stop Gerrit: " + (var/"gerrit/bin/gerrit.sh stop")
+ ohai ""
+ end
+end