diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 22d6fd7..a06c239 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -123,3 +123,39 @@ jobs: dist/*.AppImage dist/*.deb generate_release_notes: true + + update-cask: + needs: release + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + permissions: + contents: write + + steps: + - name: Checkout + uses: actions/checkout@v5 + with: + ref: main + + - name: Compute DMG sha256 + id: sha + run: | + version="${GITHUB_REF_NAME}" + url="https://github.com/${GITHUB_REPOSITORY}/releases/download/${version}/discord-presence-relay-${version}.dmg" + curl -sL -o dpr.dmg "$url" + echo "value=$(shasum -a 256 dpr.dmg | cut -d ' ' -f1)" >> "$GITHUB_OUTPUT" + + - name: Update cask + run: | + version="${GITHUB_REF_NAME}" + sed -i "s/version \".*\"/version \"${version}\"/" Casks/discord-presence-relay.rb + sed -i "s/sha256 \".*\"/sha256 \"${{ steps.sha.outputs.value }}\"/" Casks/discord-presence-relay.rb + + - name: Commit and push + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add Casks/discord-presence-relay.rb + git diff --cached --quiet && exit 0 + git commit -m "Update discord-presence-relay to ${GITHUB_REF_NAME}" + git push origin HEAD:main diff --git a/Casks/discord-presence-relay.rb b/Casks/discord-presence-relay.rb new file mode 100644 index 0000000..42d78f1 --- /dev/null +++ b/Casks/discord-presence-relay.rb @@ -0,0 +1,35 @@ +cask "discord-presence-relay" do + version "1.2.0" + sha256 "3a7d83639f5f5fb5f9689866c4f96405a36f26bbe92891f444d62ec93df2c134" + + url "https://github.com/YuzuZensai/Discord-RPC-Relay/releases/download/#{version}/discord-presence-relay-#{version}.dmg" + name "Discord Presence Relay" + desc "Mirrors Discord Rich Presence to every running Discord instance" + homepage "https://github.com/YuzuZensai/Discord-RPC-Relay" + + auto_updates false + depends_on macos: ">= :big_sur" + + app "Discord Presence Relay.app" + + postflight do + system_command "/usr/bin/xattr", + args: ["-cr", "#{appdir}/Discord Presence Relay.app"], + sudo: false + end + + zap trash: [ + "~/Library/Application Support/Discord Presence Relay", + "~/Library/Preferences/cafe.kirameki.discord-presence-relay.plist", + "~/Library/Saved Application State/cafe.kirameki.discord-presence-relay.savedState" + ] + + caveats do + <<~EOS + #{token} is not notarized. The quarantine attribute is cleared + automatically on install; if macOS still refuses to open it + ("app is damaged and can't be opened"), run: + xattr -cr "#{appdir}/Discord Presence Relay.app" + EOS + end +end diff --git a/README.md b/README.md index 63195e8..e48c6b8 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,17 @@ settings once it's running. discord-presence-relay ``` -### macOS +### macOS (Homebrew) + +```bash +brew tap yuzuzensai/discord-rpc-relay https://github.com/YuzuZensai/Discord-RPC-Relay +brew install --cask discord-presence-relay +``` + +The cask clears the Gatekeeper quarantine attribute automatically after +install, so the app opens normally right away. + +### macOS (manual) 1. Download `discord-presence-relay-.dmg` and open it. 2. Drag **Discord Presence Relay** into the **Applications** folder. diff --git a/electronBuilder.mjs b/electronBuilder.mjs index 39f7fe0..0f2660f 100644 --- a/electronBuilder.mjs +++ b/electronBuilder.mjs @@ -20,6 +20,7 @@ export default { files: [ '!**/.vscode/*', '!src/*', + '!Casks/*', '!electron.vite.config.{js,ts,mjs,cjs}', '!electronBuilder.mjs', '!{.eslintcache,eslint.config.mjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}',