#!/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}" # Load .env if present to honor GNUNET_TARBALL_URL/EXCHANGE_TARBALL_URL/... overrides if [[ -f "${ROOT_DIR}/.env" ]]; then set -a # shellcheck disable=SC1091 source "${ROOT_DIR}/.env" set +a fi GNUNET_VERSION="${GNUNET_VERSION:-0.21.2}" EXCHANGE_VERSION="${EXCHANGE_VERSION:-1.2.2}" MERCHANT_VERSION="${MERCHANT_VERSION:-1.1.6}" LIBEUFIN_VERSION="${LIBEUFIN_VERSION:-1.2.3}" # GNUnet tarball is hosted under the GNUnet mirror, Taler components under the Taler mirror. GNUNET_URL="${GNUNET_TARBALL_URL:-https://ftp.gnu.org/gnu/gnunet/gnunet-${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}"