diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9e2a27e..c865ef1 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,7 +20,7 @@ jobs: HOMEBREW_GITHUB_PACKAGES_TOKEN: ${{ github.token }} HOMEBREW_GITHUB_PACKAGES_USER: ${{ github.actor }} PULL_REQUEST: ${{ github.event.pull_request.number }} - run: brew pr-pull --debug --tap=$GITHUB_REPOSITORY $PULL_REQUEST + run: brew pr-pull --debug --tap="$GITHUB_REPOSITORY" "$PULL_REQUEST" - name: Push commits uses: Homebrew/actions/git-try-push@master @@ -32,4 +32,4 @@ jobs: if: github.event.pull_request.head.repo.fork == false env: BRANCH: ${{ github.event.pull_request.head.ref }} - run: git push --delete origin $BRANCH + run: git push --delete origin "$BRANCH" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ed26708..6db8231 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,7 +17,7 @@ jobs: - name: Cache Homebrew Bundler RubyGems id: cache - uses: actions/cache@v1 + uses: actions/cache@v4.0.2 with: path: ${{ steps.set-up-homebrew.outputs.gems-path }} key: ${{ runner.os }}-rubygems-${{ steps.set-up-homebrew.outputs.gems-hash }} 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..45d45e4 --- /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 "0.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..0a2dbbb --- /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 diff --git a/Formula/pvsadm_linux_amd64.rb b/Formula/pvsadm_linux_amd64.rb new file mode 100644 index 0000000..b955cb4 --- /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