From 6e59f1797c7fa0f321e863f82ff6b3cfa9c6f03d Mon Sep 17 00:00:00 2001 From: Glenn Goossens <48956933+glgoose@users.noreply.github.com> Date: Tue, 1 Sep 2026 12:31:22 +0200 Subject: [PATCH] dev-stub: @updateURL none, @downloadURL behouden met juiste update-check --- README.md | 20 +++++++++++++++++--- bin/dev-stub | 13 +++++++++++-- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 9ec9340..c38c46a 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,27 @@ bijgewerkte, want Tampermonkey herkent een script aan `@namespace` plus `@name`. `bin/dev-stub --list` toont de scriptmappen, `--no-copy` slaat het klembord over. -Twee dingen die aan die stub vasthangen: +Drie dingen die aan die stub vasthangen: - **De metadata komt uit de stub, niet uit de required file.** `@match`, `@grant` en `@run-at` moeten er dus in staan; het `==UserScript==`-blok van de file zelf wordt genegeerd. `dev-stub` neemt die velden over uit het echte script, zodat de twee niet uit elkaar lopen. -- **`@downloadURL` en `@updateURL` horen er niet in.** Met die velden overschrijft Tampermonkey - je stub bij de eerste update-check met de volledige raw-versie. `dev-stub` laat ze weg. +- **`@updateURL` staat op `none`.** Die velden weglaten volstaat niet: Tampermonkey onthoudt de + download-URL van de oorspronkelijke installatie apart van het meta-blok, dus een rij die ooit + van de raw-URL kwam biedt daarna alsnog een update aan die je stub overschrijft. In + `determineMetaURL` gaat `@updateURL` vóór die onthouden URL, en `none` breekt de check af. + `@downloadURL` mag daardoor gewoon blijven staan: die wordt nooit meer bereikt, en levert wel + het GitHub-icoon op in de overzichtslijst, want de herkomst wordt uit die URL afgeleid. + `dev-stub` zet allebei zelf in de stub. Controleren doe je niet in Settings: het veld + **Update URL** daar is `downloadURL` onder een misleidend label (`file_url = downloadURL || + fileURL`), en `@updateURL` heeft in dat scherm geen veld. Het toont dus de raw-URL, ook als + `none` netjes is overgenomen. Controleer in plaats daarvan het gedrag: klik in de + werkbalk-popup op **Check for userscript updates** en er hoort geen enkel dialoogvenster te + komen. +- **De stub moet mee met elke `@version`-bump.** De code komt via `@require` uit de repo, dus + functioneel merk je er niets van, maar de Version-kolom wijst anders een oude versie aan en + die kolom is nu net waarmee je dev van gebruik onderscheidt. Draai `bin/dev-stub` opnieuw en + plak. Lokale bestanden lezen mag Tampermonkey alleen als **Allow access to file URLs** aanstaat, bij `chrome://extensions` onder Details. diff --git a/bin/dev-stub b/bin/dev-stub index 5e308e8..b5881cc 100755 --- a/bin/dev-stub +++ b/bin/dev-stub @@ -80,14 +80,19 @@ name="$(meta name | head -1)" version="$(meta version | head -1)" namespace="$(meta namespace | head -1)" author="$(meta author | head -1)" +downloadurl="$(meta downloadURL | head -1)" if [ -z "$name" ] || [ -z "$version" ]; then echo "dev-stub: @name of @version ontbreekt in $src" >&2 exit 1 fi -# @downloadURL en @updateURL komen er bewust NIET in: Tampermonkey zou de stub -# dan bij de eerste update-check overschrijven met de volledige raw-versie. +# @updateURL staat op none, want weglaten volstaat niet: Tampermonkey onthoudt de +# download-URL van de oorspronkelijke installatie los van het meta-blok, en zou de +# stub daarmee bij de eerste update-check overschrijven met de volledige raw-versie. +# In determineMetaURL gaat updateURL vóór die onthouden downloadURL en breekt de +# waarde none de check af. @downloadURL mag daardoor blijven staan: die wordt nooit +# meer bereikt en levert wel de GitHub-herkomst op in de overzichtslijst. { echo "// ==UserScript==" printf '// @name %s\n' "$name" @@ -95,6 +100,8 @@ fi printf '// @version %s-dev\n' "${version%-dev}" printf '// @description Dev-loader. De code staat in de repo, dit bestand wijst er alleen naar.\n' [ -n "$author" ] && printf '// @author %s\n' "$author" + [ -n "$downloadurl" ] && printf '// @%-12s %s\n' downloadURL "$downloadurl" + printf '// @%-12s %s\n' updateURL none for key in match include exclude; do meta "$key" | while IFS= read -r value; do [ -n "$value" ] && printf '// @%-12s %s\n' "$key" "$value" @@ -126,4 +133,6 @@ if [ "$copy" -eq 1 ] && command -v pbcopy >/dev/null 2>&1; then echo >&2 echo "dev-stub: staat op het klembord" >&2 fi +echo "dev-stub: genereer de stub opnieuw na elke @version-bump, anders wijst de" >&2 +echo "dev-stub: Version-kolom in het dashboard een oude versie aan" >&2 rm -f "$dir/.dev-stub.tmp"