41 lines
1.2 KiB
Bash
Executable File
41 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Render the Homebrew cask for a Gridline release.
|
|
#
|
|
# Usage:
|
|
# scripts/render-cask.sh <version> <arm_sha256> <intel_sha256>
|
|
#
|
|
# Reads packaging/homebrew/gridline.rb.template, substitutes the version and
|
|
# per-arch SHA256 checksums, and prints the rendered cask to stdout. The
|
|
# release workflow pipes this into the tap repo's Casks/gridline.rb.
|
|
#
|
|
# Example:
|
|
# scripts/render-cask.sh 0.7.10 \
|
|
# aaaa...bbbb \
|
|
# cccc...dddd > Casks/gridline.rb
|
|
set -euo pipefail
|
|
|
|
if [ "$#" -ne 3 ]; then
|
|
echo "usage: $0 <version> <arm_sha256> <intel_sha256>" >&2
|
|
exit 1
|
|
fi
|
|
|
|
VERSION="$1"
|
|
ARM_SHA256="$2"
|
|
INTEL_SHA256="$3"
|
|
|
|
# Validate the checksums look like SHA-256 (64 hex chars) before we ship them.
|
|
for sha in "$ARM_SHA256" "$INTEL_SHA256"; do
|
|
if ! [[ "$sha" =~ ^[0-9a-f]{64}$ ]]; then
|
|
echo "error: invalid sha256 '$sha' (expected 64 hex chars)" >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
TEMPLATE="$(dirname "$0")/../packaging/homebrew/gridline.rb.template"
|
|
TEMPLATE="$(cd "$(dirname "$TEMPLATE")" && pwd)/$(basename "$TEMPLATE")"
|
|
|
|
sed -e "s/@VERSION@/${VERSION}/g" \
|
|
-e "s/@ARM_SHA256@/${ARM_SHA256}/g" \
|
|
-e "s/@INTEL_SHA256@/${INTEL_SHA256}/g" \
|
|
"$TEMPLATE" |