dev-stub: zet geen @downloadURL en @updateURL meer in de stub, want @updateURL none geeft een eslint-waarschuwing in Tampermonkey en een lokale stub heeft niets te downloaden

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Glenn Goossens
2026-10-06 10:33:12 +02:00
co-authored by Claude Sonnet 5.5
parent 6bb6f7d9cb
commit 8125d53ea5
2 changed files with 10 additions and 21 deletions
+7 -12
View File
@@ -32,18 +32,13 @@ Drie dingen die aan die stub vasthangen:
- **De metadata komt uit de stub, niet uit de required file.** `@match`, `@grant` en `@run-at` - **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` 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. neemt die velden over uit het echte script, zodat de twee niet uit elkaar lopen.
- **`@updateURL` staat op `none`.** Die velden weglaten volstaat niet: Tampermonkey onthoudt de - **`@downloadURL` en `@updateURL` staan er allebei niet in.** De code komt uit een lokaal
download-URL van de oorspronkelijke installatie apart van het meta-blok, dus een rij die ooit bestand, dus er is niets te downloaden of bij te werken. `@updateURL none` is geen
van de raw-URL kwam biedt daarna alsnog een update aan die je stub overschrijft. In oplossing: de editor van Tampermonkey toont dan een eslint-waarschuwing
`determineMetaURL` gaat `@updateURL` vóór die onthouden URL, en `none` breekt de check af. (`use-download-and-update-url`), en zonder `@downloadURL` heeft `@updateURL` ook geen
`@downloadURL` mag daardoor gewoon blijven staan: die wordt nooit meer bereikt, en levert wel functie. Een rij die ooit van de raw-URL kwam, onthoudt die URL apart van het meta-blok en
het GitHub-icoon op in de overzichtslijst, want de herkomst wordt uit die URL afgeleid. biedt dan alsnog een update aan die de stub overschrijft: verwijder zo'n rij en maak de stub
`dev-stub` zet allebei zelf in de stub. Controleren doe je niet in Settings: het veld opnieuw aan via **Create a new script**.
**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 hoeft niet mee met een `@version`-bump.** Ze staat op een vaste `0.0.0-dev`. Een - **De stub hoeft niet mee met een `@version`-bump.** Ze staat op een vaste `0.0.0-dev`. Een
echt nummer zou daar toch niets zeggen: de code komt bij elke pagina-load van schijf, dus wat echt nummer zou daar toch niets zeggen: de code komt bij elke pagina-load van schijf, dus wat
er draait is wat er nú in de repo staat. De kolom hoeft enkel `-dev` te tonen. Opnieuw er draait is wat er nú in de repo staat. De kolom hoeft enkel `-dev` te tonen. Opnieuw
+3 -9
View File
@@ -88,19 +88,15 @@ meta() {
name="$(meta name | head -1)" name="$(meta name | head -1)"
namespace="$(meta namespace | head -1)" namespace="$(meta namespace | head -1)"
author="$(meta author | head -1)" author="$(meta author | head -1)"
downloadurl="$(meta downloadURL | head -1)"
if [ -z "$name" ]; then if [ -z "$name" ]; then
echo "dev-stub: @name ontbreekt in $src" >&2 echo "dev-stub: @name ontbreekt in $src" >&2
exit 1 exit 1
fi fi
# @updateURL staat op none, want weglaten volstaat niet: Tampermonkey onthoudt de # @downloadURL en @updateURL staan er allebei bewust NIET in. @updateURL none is geen
# download-URL van de oorspronkelijke installatie los van het meta-blok, en zou de # oplossing: Tampermonkey markeert het ontbrekende @downloadURL dan in de editor, en de
# stub daarmee bij de eerste update-check overschrijven met de volledige raw-versie. # stub is lokaal, dus er is niets te downloaden of bij te werken.
# 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==" echo "// ==UserScript=="
printf '// @name %s\n' "$name" printf '// @name %s\n' "$name"
@@ -111,8 +107,6 @@ fi
printf '// @version 0.0.0-dev\n' printf '// @version 0.0.0-dev\n'
printf '// @description Dev-loader. De code staat in de repo, dit bestand wijst er alleen naar.\n' 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 "$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 for key in match include exclude; do
meta "$key" | while IFS= read -r value; do meta "$key" | while IFS= read -r value; do
[ -n "$value" ] && printf '// @%-12s %s\n' "$key" "$value" [ -n "$value" ] && printf '// @%-12s %s\n' "$key" "$value"