dev-stub: @updateURL none, @downloadURL behouden met juiste update-check
This commit is contained in:
@@ -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.
|
`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`
|
- **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.
|
||||||
- **`@downloadURL` en `@updateURL` horen er niet in.** Met die velden overschrijft Tampermonkey
|
- **`@updateURL` staat op `none`.** Die velden weglaten volstaat niet: Tampermonkey onthoudt de
|
||||||
je stub bij de eerste update-check met de volledige raw-versie. `dev-stub` laat ze weg.
|
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
|
Lokale bestanden lezen mag Tampermonkey alleen als **Allow access to file URLs** aanstaat, bij
|
||||||
`chrome://extensions` onder Details.
|
`chrome://extensions` onder Details.
|
||||||
|
|||||||
+11
-2
@@ -80,14 +80,19 @@ name="$(meta name | head -1)"
|
|||||||
version="$(meta version | head -1)"
|
version="$(meta version | 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" ] || [ -z "$version" ]; then
|
if [ -z "$name" ] || [ -z "$version" ]; then
|
||||||
echo "dev-stub: @name of @version ontbreekt in $src" >&2
|
echo "dev-stub: @name of @version ontbreekt in $src" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# @downloadURL en @updateURL komen er bewust NIET in: Tampermonkey zou de stub
|
# @updateURL staat op none, want weglaten volstaat niet: Tampermonkey onthoudt de
|
||||||
# dan bij de eerste update-check overschrijven met de volledige raw-versie.
|
# 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=="
|
echo "// ==UserScript=="
|
||||||
printf '// @name %s\n' "$name"
|
printf '// @name %s\n' "$name"
|
||||||
@@ -95,6 +100,8 @@ fi
|
|||||||
printf '// @version %s-dev\n' "${version%-dev}"
|
printf '// @version %s-dev\n' "${version%-dev}"
|
||||||
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"
|
||||||
@@ -126,4 +133,6 @@ if [ "$copy" -eq 1 ] && command -v pbcopy >/dev/null 2>&1; then
|
|||||||
echo >&2
|
echo >&2
|
||||||
echo "dev-stub: staat op het klembord" >&2
|
echo "dev-stub: staat op het klembord" >&2
|
||||||
fi
|
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"
|
rm -f "$dir/.dev-stub.tmp"
|
||||||
|
|||||||
Reference in New Issue
Block a user