dev-stub: zet de stub op een vaste versie en laat ze naar src wijzen
De stub moest tot nu toe mee met elke @version-bump, en dat is net het plakwerk waar het @require-spoor vanaf moest. Het nummer zei daar ook niets: de code komt bij elke pagina-load van schijf, dus wat er draait is wat er nú in de repo staat, niet wat er in het meta-blok bleef staan. De kolom hoeft enkel -dev te tonen, dus staat er voortaan 0.0.0-dev. Opnieuw genereren is nog nodig als de metadata zelf wijzigt, bij een andere @match, @grant, @run-at of @require. Heeft een map een src/, dan wijst @require daar rechtstreeks naar. Bij select-search was het gebouwde bestand niets anders dan de header plus die bron, dus stond build.sh alleen maar tussen opslaan en herladen in. Die draai je nu pas bij het publiceren, voor de raw-URL en de bookmarklet. De metadata blijft wel uit het gebouwde script komen, want de bron heeft geen ==UserScript==-blok. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
5d4df257b0
commit
f07c4ffb9e
@@ -10,7 +10,7 @@ hand geplakte kopie, want dan zijn er twee waarheden die stil uit elkaar lopen.
|
|||||||
|
|
||||||
| spoor | wat er in Tampermonkey staat | grootte | `@version` |
|
| spoor | wat er in Tampermonkey staat | grootte | `@version` |
|
||||||
| ----------- | --------------------------------------- | ----------------- | ----------- |
|
| ----------- | --------------------------------------- | ----------------- | ----------- |
|
||||||
| **dev** | stub met `@require file:///...` | een paar honderd byte | `1.0.0-dev` |
|
| **dev** | stub met `@require file:///...` | een paar honderd byte | `0.0.0-dev` |
|
||||||
| **gebruik** | volledige kopie via de raw-URL | de echte grootte | `1.0.0` |
|
| **gebruik** | volledige kopie via de raw-URL | de echte grootte | `1.0.0` |
|
||||||
|
|
||||||
De grootte in het dashboard zegt dus in welk spoor een rij zit.
|
De grootte in het dashboard zegt dus in welk spoor een rij zit.
|
||||||
@@ -44,10 +44,14 @@ Drie dingen die aan die stub vasthangen:
|
|||||||
`none` netjes is overgenomen. Controleer in plaats daarvan het gedrag: klik in de
|
`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
|
werkbalk-popup op **Check for userscript updates** en er hoort geen enkel dialoogvenster te
|
||||||
komen.
|
komen.
|
||||||
- **De stub moet mee met elke `@version`-bump.** De code komt via `@require` uit de repo, dus
|
- **De stub hoeft niet mee met een `@version`-bump.** Ze staat op een vaste `0.0.0-dev`. Een
|
||||||
functioneel merk je er niets van, maar de Version-kolom wijst anders een oude versie aan en
|
echt nummer zou daar toch niets zeggen: de code komt bij elke pagina-load van schijf, dus wat
|
||||||
die kolom is nu net waarmee je dev van gebruik onderscheidt. Draai `bin/dev-stub` opnieuw en
|
er draait is wat er nú in de repo staat. De kolom hoeft enkel `-dev` te tonen. Opnieuw
|
||||||
plak.
|
genereren en plakken doe je alleen als de metadata zelf wijzigt, dus bij een andere `@match`,
|
||||||
|
`@grant`, `@run-at` of `@require`.
|
||||||
|
- **Heeft de map een `src/`, dan wijst `@require` daarnaar,** niet naar het gebouwde script.
|
||||||
|
Opslaan en de pagina herladen volstaat; `build.sh` draai je pas als je publiceert, voor de
|
||||||
|
raw-URL en de bookmarklet.
|
||||||
|
|
||||||
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.
|
||||||
|
|||||||
+16
-7
@@ -71,19 +71,27 @@ if [ -z "$src" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Heeft de map een build, dan wijst @require naar de bron in plaats van naar het
|
||||||
|
# gebouwde bestand: zo volstaat opslaan en de pagina herladen, zonder build.sh
|
||||||
|
# ertussen. De metadata blijft wel uit het gebouwde script komen, want de bron
|
||||||
|
# heeft geen ==UserScript==-blok.
|
||||||
|
code="$src"
|
||||||
|
if [ -f "$dir/src/$(basename "$dir").js" ]; then
|
||||||
|
code="$dir/src/$(basename "$dir").js"
|
||||||
|
fi
|
||||||
|
|
||||||
# Eén metadataveld uit de kop van het echte script halen.
|
# Eén metadataveld uit de kop van het echte script halen.
|
||||||
meta() {
|
meta() {
|
||||||
sed -n 's|^// @'"$1"' *\(.*[^ ]\) *$|\1|p' "$src"
|
sed -n 's|^// @'"$1"' *\(.*[^ ]\) *$|\1|p' "$src"
|
||||||
}
|
}
|
||||||
|
|
||||||
name="$(meta name | head -1)"
|
name="$(meta name | 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)"
|
downloadurl="$(meta downloadURL | head -1)"
|
||||||
|
|
||||||
if [ -z "$name" ] || [ -z "$version" ]; then
|
if [ -z "$name" ]; then
|
||||||
echo "dev-stub: @name of @version ontbreekt in $src" >&2
|
echo "dev-stub: @name ontbreekt in $src" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -97,7 +105,10 @@ fi
|
|||||||
echo "// ==UserScript=="
|
echo "// ==UserScript=="
|
||||||
printf '// @name %s\n' "$name"
|
printf '// @name %s\n' "$name"
|
||||||
[ -n "$namespace" ] && printf '// @namespace %s\n' "$namespace"
|
[ -n "$namespace" ] && printf '// @namespace %s\n' "$namespace"
|
||||||
printf '// @version %s-dev\n' "${version%-dev}"
|
# Vaste versie, losgekoppeld van het echte script. De code komt bij elke pagina-load
|
||||||
|
# van schijf, dus een nummer hier zou hooguit suggereren dat er iets vastligt. De kolom
|
||||||
|
# hoeft alleen -dev te tonen, en zo hoeft de stub niet mee met elke @version-bump.
|
||||||
|
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"
|
[ -n "$downloadurl" ] && printf '// @%-12s %s\n' downloadURL "$downloadurl"
|
||||||
@@ -118,7 +129,7 @@ fi
|
|||||||
meta resource | while IFS= read -r value; do
|
meta resource | while IFS= read -r value; do
|
||||||
[ -n "$value" ] && printf '// @%-12s %s\n' resource "$value"
|
[ -n "$value" ] && printf '// @%-12s %s\n' resource "$value"
|
||||||
done
|
done
|
||||||
printf '// @%-12s file://%s\n' require "$src"
|
printf '// @%-12s file://%s\n' require "$code"
|
||||||
for key in grant connect run-at noframes; do
|
for key in grant connect run-at noframes; 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"
|
||||||
@@ -133,6 +144,4 @@ 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