Add helper to fetch release tarballs

This commit is contained in:
nocci 2025-12-12 12:10:43 +00:00
parent 8ffa0c9561
commit 7acb97cd13
3 changed files with 45 additions and 0 deletions

View file

@ -48,6 +48,7 @@ Container-Stack für GNU Taler (Exchange, Merchant, LibEuFin Bank) mit optionale
- Nach Passwortänderungen in `.env` ist kein manuelles SQL-Rendering nötig; das Init-Skript liest sie beim Start.
- Release-Refs/Tarballs: Tags/Commits unter `https://git.taler.net/{gnunet,exchange,merchant,libeufin}.git/` ansehen (Tarballs via `.../snapshot/<tag>.tar.gz`) und `*_REF`/`GNUNET_TARBALL_URL` entsprechend setzen.
- Offline-Tarballs: Lege Tarballs unter `vendor/` ab (`gnunet-*.tar.gz`, `exchange-*.tar.gz`, `merchant-*.tar.gz`, `libeufin-*.tar.gz`); bei unvollständigem Tarball fällt der Build auf Git zurück.
- Release-Tarballs laden: `./scripts/fetch-tarballs.sh` (nutzt aktuelle Stable-Versionen; per `*_VERSION` oder `*_TARBALL_URL` überschreibbar).
## Nützliche Kommandos
- Logs: `docker compose logs -f exchange` (oder bank/merchant/caddy/wordpress).

View file

@ -48,6 +48,7 @@ Container stack for GNU Taler (Exchange, Merchant, LibEuFin Bank) with optional
- After changing DB passwords in `.env`, no manual SQL rendering is needed—the init script reads them at container start.
- Release refs/tarballs: Browse tags/commits at `https://git.taler.net/{gnunet,exchange,merchant,libeufin}.git/` (Tarballs via `.../snapshot/<tag>.tar.gz`) and set `*_REF`/`GNUNET_TARBALL_URL` accordingly.
- Offline tarball drop-in: place tarballs under `vendor/` (`gnunet-*.tar.gz`, `exchange-*.tar.gz`, `merchant-*.tar.gz`, `libeufin-*.tar.gz`); the build picks the first match and falls back to git if incomplete.
- Fetch release tarballs: `./scripts/fetch-tarballs.sh` (uses current stable versions; override with `*_VERSION` or `*_TARBALL_URL` env vars).
## Useful commands
- Logs: `docker compose logs -f exchange` (or bank/merchant/caddy/wordpress).

43
scripts/fetch-tarballs.sh Executable file
View file

@ -0,0 +1,43 @@
#!/usr/bin/env bash
set -euo pipefail
# Downloads release tarballs into ./vendor (skips existing files).
# Defaults to current stable versions; override via env:
# GNUNET_VERSION, EXCHANGE_VERSION, MERCHANT_VERSION, LIBEUFIN_VERSION
# GNUNET_TARBALL_URL, EXCHANGE_TARBALL_URL, MERCHANT_TARBALL_URL, LIBEUFIN_TARBALL_URL
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
VENDOR_DIR="${ROOT_DIR}/vendor"
mkdir -p "${VENDOR_DIR}"
GNUNET_VERSION="${GNUNET_VERSION:-0.26.1}"
EXCHANGE_VERSION="${EXCHANGE_VERSION:-1.2.2}"
MERCHANT_VERSION="${MERCHANT_VERSION:-1.1.6}"
LIBEUFIN_VERSION="${LIBEUFIN_VERSION:-1.2.3}"
GNUNET_URL="${GNUNET_TARBALL_URL:-https://ftp.fau.de/gnu/taler/gnunet-debian-${GNUNET_VERSION}.tar.gz}"
EXCHANGE_URL="${EXCHANGE_TARBALL_URL:-https://ftp.fau.de/gnu/taler/exchange-${EXCHANGE_VERSION}.tar.gz}"
MERCHANT_URL="${MERCHANT_TARBALL_URL:-https://ftp.fau.de/gnu/taler/merchant-${MERCHANT_VERSION}.tar.gz}"
LIBEUFIN_URL="${LIBEUFIN_TARBALL_URL:-https://ftp.fau.de/gnu/taler/libeufin-${LIBEUFIN_VERSION}.tar.gz}"
fetch() {
local url="$1"
local dest="${VENDOR_DIR}/$(basename "$url")"
local name
name="$(basename "$dest")"
if [[ -f "$dest" ]]; then
echo "${name} already present"
return 0
fi
echo "→ Downloading ${name}"
curl -fL "$url" -o "$dest"
}
fetch "$GNUNET_URL"
fetch "$EXCHANGE_URL"
fetch "$MERCHANT_URL"
fetch "$LIBEUFIN_URL"
echo "Done. Tarballs are in ${VENDOR_DIR}"