Files
2026-10-10 21:01:20 +02:00

44 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# Bootstrap the pinned toolchain (Calepin + Typst) into tools/.
# Idempotent: skips downloads when the binaries are already in place.
set -euo pipefail
# Pinned toolchain -- bump both binaries together and re-verify checksums.
calepin_version="0.0.61"
typst_version="0.15.1"
# Typst publishes no .sha256 assets; this digest comes from the official
# release metadata (GitHub asset digest of typst-x86_64-unknown-linux-musl.tar.xz).
typst_sha256="a6d077d0a95eed5a2eba715b2dae06be954f624ccbf85758a03f389ded33118c"
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
tools="$root/tools"
if [ "$(uname -m)" != "x86_64" ]; then
echo "error: unsupported architecture $(uname -m), pinned binaries are x86_64" >&2
exit 1
fi
mkdir -p "$tools"
if [ ! -x "$tools/calepin" ]; then
name="calepin-x86_64-unknown-linux-gnu.tar.xz"
base="https://github.com/vincentarelbundock/calepin/releases/download/v$calepin_version"
curl -fsSLo "$tools/$name" "$base/$name"
curl -fsSLo "$tools/$name.sha256" "$base/$name.sha256"
(cd "$tools" && sha256sum -c "$name.sha256")
tar -xJf "$tools/$name" -C "$tools" --strip-components=1 "calepin-x86_64-unknown-linux-gnu/calepin"
rm "$tools/$name" "$tools/$name.sha256"
fi
if [ ! -x "$tools/typst" ]; then
name="typst-x86_64-unknown-linux-musl.tar.xz"
curl -fsSLo "$tools/$name" "https://github.com/typst/typst/releases/download/v$typst_version/$name"
echo "$typst_sha256 $name" > "$tools/$name.sha256"
(cd "$tools" && sha256sum -c "$name.sha256")
tar -xJf "$tools/$name" -C "$tools" --strip-components=1 "typst-x86_64-unknown-linux-musl/typst"
rm "$tools/$name" "$tools/$name.sha256"
fi
"$tools/calepin" --version
"$tools/typst" --version