#!/bin/sh
# Build the local-only scala-stage0 .deb used by the one-time bootstrap build
# (build profile pkg.scala.stage0). It holds upstream's pinned STARR jars,
# checked against the checksums below; see debian/README.source.
# This is a maintainer tool, run by hand. It is not used by debian/rules and
# the .deb it produces is never uploaded.
#
# Usage: debian/make-stage0-deb OUTDIR
set -e

STARR=2.12.21-M2
BASE=https://repo1.maven.org/maven2/org/scala-lang

OUT=${1:?usage: $0 OUTDIR}
mkdir -p "$OUT"
OUT=$(cd "$OUT" && pwd)
WORK=$(mktemp -d)
trap 'rm -rf "$WORK"' EXIT

ROOT=$WORK/root
mkdir -p "$ROOT/DEBIAN" "$ROOT/usr/share/scala-stage0"

for a in library reflect compiler; do
	curl -fsSL -o "$WORK/scala-$a.jar" "$BASE/scala-$a/$STARR/scala-$a-$STARR.jar"
done

( cd "$WORK" && sha256sum -c - ) <<EOF
1bcd0589ae3f0bb5b1cd345e00c9905601d48eb8902a9aaf70ed2c4c15790a75  scala-library.jar
18f2478299567ae5f33d5510c08aaa0ecdd64343c2276035c2f4f6c1b3a42108  scala-reflect.jar
628c39e28987dd5bae09ef24b10aea46e5c9fa1f8b4eb6c883e859b03e33df23  scala-compiler.jar
EOF

install -m644 "$WORK"/scala-*.jar "$ROOT/usr/share/scala-stage0/"

cat > "$ROOT/DEBIAN/control" <<EOF
Package: scala-stage0
Version: $(echo "$STARR" | tr - '~')
Architecture: all
Maintainer: Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>
Description: Scala $STARR STARR jars for bootstrapping src:scala (local only)
 Upstream's pinned STARR, used once by the pkg.scala.stage0 build profile.
 Not for the archive.
EOF

dpkg-deb --root-owner-group --build "$ROOT" "$OUT/scala-stage0_$(echo "$STARR" | tr - '~')_all.deb"
