mirror of
https://github.com/andwati/kget-capture.git
synced 2026-10-18 03:02:56 +00:00
Default KGet's download folder to Downloads and add release workflow
install.sh now sets KGet's remembered "New Download" folder (kgetrc Internal/LastDirectory) to the XDG downloads directory if it isn't already configured, since KGet's own out-of-the-box default was Documents. Falls back correctly even when xdg-user-dir has no user-dirs.dirs config to read (it silently returns bare $HOME otherwise). Also add a GitHub Actions workflow that packages extension/ into a zip and publishes a GitHub Release with generated notes whenever a v*.*.* tag is pushed.
This commit is contained in:
@@ -0,0 +1,27 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "v*.*.*"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Package extension
|
||||||
|
run: |
|
||||||
|
cd extension
|
||||||
|
zip -r "../kget-capture-${GITHUB_REF_NAME}.zip" .
|
||||||
|
|
||||||
|
- name: Create release
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
files: kget-capture-${{ github.ref_name }}.zip
|
||||||
|
generate_release_notes: true
|
||||||
@@ -51,6 +51,19 @@ This removes the native messaging host registrations and the installed host
|
|||||||
script. You'll still need to remove the unpacked extension yourself via
|
script. You'll still need to remove the unpacked extension yourself via
|
||||||
`chrome://extensions` — that step can't be scripted.
|
`chrome://extensions` — that step can't be scripted.
|
||||||
|
|
||||||
|
## Releases
|
||||||
|
|
||||||
|
Pushing a tag matching `v*.*.*` (e.g. `v1.0.0`) triggers a GitHub Actions
|
||||||
|
workflow ([.github/workflows/release.yml](.github/workflows/release.yml))
|
||||||
|
that zips `extension/` and publishes it as a GitHub Release with
|
||||||
|
auto-generated release notes. Bump `"version"` in `extension/manifest.json`
|
||||||
|
before tagging so the packaged extension's version matches.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git tag v1.0.0
|
||||||
|
git push origin v1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
## Known limitations
|
## Known limitations
|
||||||
|
|
||||||
- **`blob:`/`data:` URLs can't be captured.** There's no real network URL to
|
- **`blob:`/`data:` URLs can't be captured.** There's no real network URL to
|
||||||
|
|||||||
+39
@@ -51,6 +51,45 @@ if [ "$registered_any" = false ]; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "Checking KGet's default download folder..."
|
||||||
|
python3 - <<'PYEOF'
|
||||||
|
import configparser
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
kgetrc = os.path.expanduser("~/.config/kgetrc")
|
||||||
|
key = "LastDirectory[$e]"
|
||||||
|
|
||||||
|
home = os.path.expanduser("~")
|
||||||
|
try:
|
||||||
|
result = subprocess.run(["xdg-user-dir", "DOWNLOAD"], capture_output=True, text=True, timeout=5)
|
||||||
|
downloads = result.stdout.strip()
|
||||||
|
except (FileNotFoundError, subprocess.TimeoutExpired):
|
||||||
|
downloads = ""
|
||||||
|
# xdg-user-dir falls back to bare $HOME (not $HOME/Downloads) when there's
|
||||||
|
# no ~/.config/user-dirs.dirs at all -- treat that the same as "not found".
|
||||||
|
if not downloads or downloads.rstrip("/") == home.rstrip("/"):
|
||||||
|
downloads = os.path.join(home, "Downloads")
|
||||||
|
|
||||||
|
cp = configparser.ConfigParser(interpolation=None)
|
||||||
|
cp.optionxform = str
|
||||||
|
if os.path.exists(kgetrc):
|
||||||
|
cp.read(kgetrc)
|
||||||
|
|
||||||
|
if not cp.has_section("Internal"):
|
||||||
|
cp.add_section("Internal")
|
||||||
|
|
||||||
|
if key in cp["Internal"]:
|
||||||
|
print(f"KGet's default download folder is already set ({cp['Internal'][key]}), leaving it as-is")
|
||||||
|
else:
|
||||||
|
cp["Internal"][key] = downloads + "/"
|
||||||
|
os.makedirs(os.path.dirname(kgetrc), exist_ok=True)
|
||||||
|
with open(kgetrc, "w") as f:
|
||||||
|
cp.write(f)
|
||||||
|
print(f"Set KGet's default download folder to {downloads}")
|
||||||
|
print("(If KGet is currently running, restart it for this to take effect.)")
|
||||||
|
PYEOF
|
||||||
|
|
||||||
EXT_ID=$(cat "$SCRIPT_DIR/keys/extension-id.txt")
|
EXT_ID=$(cat "$SCRIPT_DIR/keys/extension-id.txt")
|
||||||
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user