v0.0.3: klant-PDF rekent met het volledige model (totalKg faalde met skip3D); Tectum (configurator) op eigen subdomein achter wachtwoord
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
13d0d43fd9
commit
81fc27fa86
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
# Een getagde versie van Tectum (de configurator) naar de server brengen (eerst eenmalig server/tectum-setup.sh).
|
||||
#
|
||||
# tools/tectum-release.sh crm@tectum.voorbeeld.nl nieuwste tag
|
||||
# tools/tectum-release.sh crm@tectum.voorbeeld.nl v0.7.6 een bepaalde versie (ook om terug te rollen)
|
||||
#
|
||||
# De bestanden komen uit `git archive <tag>` van $CONFIGURATOR (standaard ../configurator), dus niet-gecommit
|
||||
# werk gaat niet mee. rsync met hardlinks naar de vorige versie, zodat alleen wijzigingen over de lijn gaan;
|
||||
# daarna wijst `current` naar de nieuwe versie. De laatste 5 versies blijven staan.
|
||||
set -euo pipefail
|
||||
|
||||
REPO="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
HOST="${1:-}"
|
||||
CONFIGURATOR="${CONFIGURATOR:-$REPO/../configurator}"
|
||||
ROOT=/srv/www/tectum
|
||||
|
||||
say() { printf '\033[38;2;185;89;19m▸\033[0m %s\n' "$*"; }
|
||||
fail() { printf 'Fout: %s\n' "$*" >&2; exit 1; }
|
||||
|
||||
[ -n "$HOST" ] || fail "gebruik: tools/tectum-release.sh crm@server [vX.Y.Z]"
|
||||
[ -f "$CONFIGURATOR/index.html" ] || fail "geen configurator in $CONFIGURATOR (zet CONFIGURATOR=pad)"
|
||||
TAG="${2:-$(git -C "$CONFIGURATOR" tag --list 'v*' --sort=-v:refname | head -n1)}"
|
||||
[[ "$TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]] || fail "onbekende versie '$TAG' (verwacht vX.Y.Z)"
|
||||
git -C "$CONFIGURATOR" rev-parse -q --verify "refs/tags/$TAG" >/dev/null || fail "tag $TAG bestaat niet"
|
||||
[ -z "$(git -C "$CONFIGURATOR" status --porcelain)" ] || say "let op: niet-gecommitte wijzigingen in de configurator zitten niet in $TAG"
|
||||
|
||||
tmp="$(mktemp -d)"
|
||||
trap 'rm -rf "$tmp"' EXIT
|
||||
chmod 755 "$tmp" # mktemp maakt hem 700, en rsync -a neemt dat mee (nginx moet erin kunnen)
|
||||
git -C "$CONFIGURATOR" archive "$TAG" | tar -x -C "$tmp"
|
||||
rm -f "$tmp/README.md" "$tmp/start.sh" "$tmp/.gitignore"
|
||||
|
||||
say "Tectum $TAG uploaden naar $HOST"
|
||||
ssh "$HOST" "mkdir -p $ROOT/releases/$TAG"
|
||||
rsync -az --delete --link-dest="$ROOT/current/" "$tmp/" "$HOST:$ROOT/releases/$TAG/"
|
||||
|
||||
say "$TAG actief maken"
|
||||
ssh "$HOST" "set -e; cd $ROOT; ln -sfn releases/$TAG current.new; mv -T current.new current
|
||||
ls -1 releases | sort -V | head -n -5 | grep -vxF '$TAG' | sed 's|^|releases/|' | xargs -r rm -rf"
|
||||
|
||||
say "klaar: Tectum $TAG staat live"
|
||||
Reference in New Issue
Block a user