From 7acb97cd13c20cde087158a7d0d9efdcfe895a16 Mon Sep 17 00:00:00 2001 From: nocci Date: Fri, 12 Dec 2025 12:10:43 +0000 Subject: [PATCH] Add helper to fetch release tarballs --- README-DE.md | 1 + README.md | 1 + scripts/fetch-tarballs.sh | 43 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100755 scripts/fetch-tarballs.sh diff --git a/README-DE.md b/README-DE.md index 4002503..56f525a 100644 --- a/README-DE.md +++ b/README-DE.md @@ -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/.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). diff --git a/README.md b/README.md index 0addb32..0a4fc05 100644 --- a/README.md +++ b/README.md @@ -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/.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). diff --git a/scripts/fetch-tarballs.sh b/scripts/fetch-tarballs.sh new file mode 100755 index 0000000..c06e35a --- /dev/null +++ b/scripts/fetch-tarballs.sh @@ -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}"