#!/usr/bin/env bash set -euo pipefail usage() { cat <<'EOF' Usage: render_release_metadata.sh Inputs expected in : openbitdo--linux-x86_64.tar.gz openbitdo--linux-aarch64.tar.gz openbitdo--macos-arm64.tar.gz EOF } if [[ $# -ne 4 ]]; then usage >&2 exit 1 fi TAG="$1" REPOSITORY="$2" INPUT_DIR="$3" OUTPUT_DIR="$4" ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" sha256() { if command -v sha256sum >/dev/null 2>&1; then sha256sum "$1" | awk '{print $1}' else shasum -a 256 "$1" | awk '{print $1}' fi } aur_pkgver_from_tag() { local version version="${1#v}" version="${version/-rc./rc}" version="${version/-alpha./alpha}" version="${version/-beta./beta}" echo "$version" } VERSION="${TAG#v}" AUR_PKGVER="$(aur_pkgver_from_tag "$TAG")" LINUX_X86_ARCHIVE="${INPUT_DIR}/openbitdo-${TAG}-linux-x86_64.tar.gz" LINUX_AARCH64_ARCHIVE="${INPUT_DIR}/openbitdo-${TAG}-linux-aarch64.tar.gz" MACOS_ARM64_ARCHIVE="${INPUT_DIR}/openbitdo-${TAG}-macos-arm64.tar.gz" for required in \ "$LINUX_X86_ARCHIVE" \ "$LINUX_AARCH64_ARCHIVE" \ "$MACOS_ARM64_ARCHIVE"; do if [[ ! -f "$required" ]]; then echo "missing required release input: $required" >&2 exit 1 fi done LINUX_X86_SHA256="$(sha256 "$LINUX_X86_ARCHIVE")" LINUX_AARCH64_SHA256="$(sha256 "$LINUX_AARCH64_ARCHIVE")" MACOS_ARM64_SHA256="$(sha256 "$MACOS_ARM64_ARCHIVE")" mkdir -p \ "${OUTPUT_DIR}/aur/openbitdo-bin" \ "${OUTPUT_DIR}/homebrew/Formula" render() { local template="$1" local destination="$2" sed \ -e "s|@AUR_PKGVER@|${AUR_PKGVER}|g" \ -e "s|@UPSTREAM_TAG@|${TAG}|g" \ -e "s|@VERSION@|${VERSION}|g" \ -e "s|@REPOSITORY@|${REPOSITORY}|g" \ -e "s|@LINUX_X86_64_SHA256@|${LINUX_X86_SHA256}|g" \ -e "s|@LINUX_AARCH64_SHA256@|${LINUX_AARCH64_SHA256}|g" \ -e "s|@MACOS_ARM64_SHA256@|${MACOS_ARM64_SHA256}|g" \ "$template" > "$destination" } render \ "${ROOT}/packaging/aur/openbitdo-bin/PKGBUILD.tmpl" \ "${OUTPUT_DIR}/aur/openbitdo-bin/PKGBUILD" render \ "${ROOT}/packaging/homebrew/Formula/openbitdo.rb.tmpl" \ "${OUTPUT_DIR}/homebrew/Formula/openbitdo.rb" cat > "${OUTPUT_DIR}/checksums.env" <