From 913e51dc28abc09469b78e76182ef958d778a3b3 Mon Sep 17 00:00:00 2001 From: carmal891 Date: Mon, 23 Sep 2024 14:23:09 +0530 Subject: [PATCH] Automated version bumping - splits formula into multiple files based on OS platform --- .gitignore | 3 +++ Formula/pvsadm.rb | 36 ++++++++++++++++------------------ Formula/pvsadm_darwin_amd64.rb | 18 +++++++++++++++++ Formula/pvsadm_darwin_arm64.rb | 18 +++++++++++++++++ Formula/pvsadm_linux_amd64.rb | 18 +++++++++++++++++ 5 files changed, 74 insertions(+), 19 deletions(-) create mode 100644 Formula/pvsadm_darwin_amd64.rb create mode 100644 Formula/pvsadm_darwin_arm64.rb create mode 100644 Formula/pvsadm_linux_amd64.rb diff --git a/.gitignore b/.gitignore index e3200e0..7f5513c 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,6 @@ build-iPhoneSimulator/ # Used by RuboCop. Remote config files pulled in from inherit_from directive. # .rubocop-https?--* + +#log file +pvsadm.log diff --git a/Formula/pvsadm.rb b/Formula/pvsadm.rb index 0a321ee..fa1daa9 100644 --- a/Formula/pvsadm.rb +++ b/Formula/pvsadm.rb @@ -1,34 +1,32 @@ class Pvsadm < Formula desc "Tool for managing the IBM Power Systems Virtual Servers" homepage "https://github.com/ppc64le-cloud/pvsadm" - version "0.1.11" license "Apache-2.0" - on_macos do - on_intel do - url "https://github.com/ppc64le-cloud/pvsadm/releases/download/v0.1.11/pvsadm-darwin-amd64.tar.gz" - sha256 "7af9d26b61a032f874be6d5a040b762796651bfde1acf95188b23ad85de1a646" - end - on_arm do - url "https://github.com/ppc64le-cloud/pvsadm/releases/download/v0.1.11/pvsadm-darwin-arm64.tar.gz" - sha256 "053068fbfe6b6ea83fe285a22e0c260651714a976aee3d2c2be6529f2fbfc5f3" + if OS.mac? + if Hardware::CPU.intel? + require_relative "pvsadm_darwin_amd64" + PvsadmDarwinAmd64.new + elsif Hardware::CPU.arm? + require_relative "pvsadm_darwin_arm64" + PvsadmDarwinArm64.new end - end - - on_linux do - on_intel do - url "https://github.com/ppc64le-cloud/pvsadm/releases/download/v0.1.11/pvsadm-linux-amd64.tar.gz" - sha256 "b25e9453bdd75a11af3303783c250c93f05b3472cfe49e795bab200e5db04e03" + elsif OS.linux? + if Hardware::CPU.intel? + require_relative "pvsadm_linux_amd64" + PvsadmLinuxAmd64.new end end def install - bin.install "pvsadm" + raise "Unsupported platform" unless defined? @formula + + @formula.install end test do - output = shell_output("#{bin}/pvsadm get events 2>&1", 1) - assert_match "Error: --instance-name or --instance-name required", output - assert_match "Version: v#{version},", shell_output("#{bin}/pvsadm version | awk '{print $1, $2}'") + raise "Unsupported platform" unless defined? @formula + + @formula.test end end diff --git a/Formula/pvsadm_darwin_amd64.rb b/Formula/pvsadm_darwin_amd64.rb new file mode 100644 index 0000000..ce5813e --- /dev/null +++ b/Formula/pvsadm_darwin_amd64.rb @@ -0,0 +1,18 @@ +class PvsadmDarwinAmd64 < Formula + desc "Tool for managing the IBM Power Systems Virtual Servers" + homepage "https://github.com/ppc64le-cloud/pvsadm" + url "https://github.com/ppc64le-cloud/pvsadm/releases/download/v0.1.11/pvsadm-darwin-amd64.tar.gz" + version "v0.1.11" + sha256 "7af9d26b61a032f874be6d5a040b762796651bfde1acf95188b23ad85de1a646" + license "Apache-2.0" + + def install + bin.install "pvsadm" + end + + test do + output = shell_output("#{bin}/pvsadm get events 2>&1", 1) + assert_match "Error: --instance-name or --instance-name required", output + assert_match "Version: v#{version},", shell_output("#{bin}/pvsadm version | awk '{print $1, $2}'") + end +end diff --git a/Formula/pvsadm_darwin_arm64.rb b/Formula/pvsadm_darwin_arm64.rb new file mode 100644 index 0000000..0b0e539 --- /dev/null +++ b/Formula/pvsadm_darwin_arm64.rb @@ -0,0 +1,18 @@ +class PvsadmDarwinArm64 < Formula + desc "Tool for managing the IBM Power Systems Virtual Servers" + homepage "https://github.com/ppc64le-cloud/pvsadm" + url "https://github.com/ppc64le-cloud/pvsadm/releases/download/v0.1.11/pvsadm-darwin-arm64.tar.gz" + version "0.1.11" + sha256 "053068fbfe6b6ea83fe285a22e0c260651714a976aee3d2c2be6529f2fbfc5f3" + license "Apache-2.0" + + def install + bin.install "pvsadm" + end + + test do + output = shell_output("#{bin}/pvsadm get events 2>&1", 1) + assert_match "Error: --instance-name or --instance-name required", output + assert_match "Version: v#{version},", shell_output("#{bin}/pvsadm version | awk '{print $1, $2}'") + end +end \ No newline at end of file diff --git a/Formula/pvsadm_linux_amd64.rb b/Formula/pvsadm_linux_amd64.rb new file mode 100644 index 0000000..1adfc77 --- /dev/null +++ b/Formula/pvsadm_linux_amd64.rb @@ -0,0 +1,18 @@ +class PvsadmLinuxAmd64 < Formula + desc "Tool for managing the IBM Power Systems Virtual Servers" + homepage "https://github.com/ppc64le-cloud/pvsadm" + url "https://github.com/ppc64le-cloud/pvsadm/releases/download/v0.1.11/pvsadm-linux-amd64.tar.gz" + version "0.1.11" + sha256 "b25e9453bdd75a11af3303783c250c93f05b3472cfe49e795bab200e5db04e03" + license "Apache-2.0" + + def install + bin.install "pvsadm" + end + + test do + output = shell_output("#{bin}/pvsadm get events 2>&1", 1) + assert_match "Error: --instance-name or --instance-name required", output + assert_match "Version: v#{version},", shell_output("#{bin}/pvsadm version | awk '{print $1, $2}'") + end +end \ No newline at end of file