Update readme and icons

This commit is contained in:
2026-08-05 23:31:00 -05:00
parent d468703f16
commit 49bc022909
7 changed files with 61 additions and 9 deletions

View File

@@ -52,3 +52,23 @@ WTFPL licensed.
4. Select `dist/splirate-firefox-v<version>.xpi`
Note: on standard Firefox, unsigned extensions are temporary via `about:debugging` and are removed on restart.
## Signed Build Download
- Direct signed XPI: [splirate-signed.xpi](https://git.zetaphor.com/zetaphor/splirate/releases/download/signed/splirate-signed.xpi)
- Releases page: [Splirate Releases](https://git.zetaphor.com/zetaphor/splirate/releases)
## Persistent Install (Private / Unlisted Signing)
Use Mozilla's unlisted signing to get a persistent signed XPI without public listing.
1. Create AMO API credentials:
- [Firefox Add-on Developer Hub](https://addons.mozilla.org/developers/)
2. Export credentials in your shell:
- `export AMO_JWT_ISSUER="your-issuer"`
- `export AMO_JWT_SECRET="your-secret"`
3. Run signing:
- `npm run sign`
4. Install the signed `.xpi` from:
- `dist/signed/`
- Firefox: `about:addons` → gear icon → **Install Add-on From File...**

BIN
icons/icon-128.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
icons/icon-48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
icons/icon-96.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@@ -4,9 +4,9 @@
"version": "1.0.0",
"description": "Splirate captures Splice sample links and downloads playable audio.",
"icons": {
"48": "logo-single.png",
"96": "logo-single.png",
"128": "logo-single.png"
"48": "icons/icon-48.png",
"96": "icons/icon-96.png",
"128": "icons/icon-128.png"
},
"permissions": [
"tabs",
@@ -37,8 +37,8 @@
"browser_action": {
"default_title": "Splirate",
"default_icon": {
"48": "logo-single.png",
"96": "logo-single.png"
"48": "icons/icon-48.png",
"96": "icons/icon-96.png"
},
"default_popup": "popup.html"
},
@@ -48,10 +48,15 @@
"history.css",
"page-probe.js"
],
"applications": {
"browser_specific_settings": {
"gecko": {
"id": "splirate@splice.local",
"strict_min_version": "109.0"
"strict_min_version": "109.0",
"data_collection_permissions": {
"required": [
"none"
]
}
}
}
}

View File

@@ -6,6 +6,8 @@
"scripts": {
"build": "bash scripts/build-firefox.sh",
"build:firefox": "bash scripts/build-firefox.sh",
"build:xpi": "bash scripts/build-firefox.sh"
"build:xpi": "bash scripts/build-firefox.sh",
"sign": "bash scripts/sign-firefox.sh",
"sign:firefox": "bash scripts/sign-firefox.sh"
}
}

25
scripts/sign-firefox.sh Executable file
View File

@@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
DIST_DIR="${ROOT_DIR}/dist/signed"
if [[ -z "${AMO_JWT_ISSUER:-}" || -z "${AMO_JWT_SECRET:-}" ]]; then
echo "Missing AMO credentials." >&2
echo "Set AMO_JWT_ISSUER and AMO_JWT_SECRET before running this script." >&2
exit 1
fi
mkdir -p "${DIST_DIR}"
cd "${ROOT_DIR}"
# Signs as an unlisted add-on (private distribution).
npx web-ext sign \
--source-dir "${ROOT_DIR}" \
--artifacts-dir "${DIST_DIR}" \
--channel unlisted \
--ignore-files "dist/*" "scripts/*" ".git/*" "*.har" "*.log" "*.tmp"
echo "Signed XPI artifacts are in:"
echo "${DIST_DIR}"