#!/usr/bin/env bash set -euo pipefail ROOT=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd) VERSION=$(awk -F'"' '/^version =/{print $2; exit}' "$ROOT/Cargo.toml") REF=${1:-HEAD} DIST_DIR=${DIST_DIR:-"$ROOT/dist"} SOURCE_ARCHIVE="$DIST_DIR/lumen-wallpaper-$VERSION-source.tar.gz" INSTALLER="$DIST_DIR/lumen-wallpaper-$VERSION-installer.run" command -v git >/dev/null 2>&1 || { printf 'Release packaging requires git\n' >&2 exit 1 } git -C "$ROOT" rev-parse --verify "$REF^{commit}" >/dev/null mkdir -p "$DIST_DIR" git -C "$ROOT" archive --format=tar.gz \ --prefix="Lumen-wallpaper-$VERSION/" "$REF" -o "$SOURCE_ARCHIVE" if tar -tzf "$SOURCE_ARCHIVE" | grep -E '(^|/)(build|target|dist|\.env)(/|$)|\.(log|swp|tmp)$' >/dev/null; then printf 'Release archive contains a forbidden local artifact\n' >&2 exit 1 fi sed "s/@LUMEN_VERSION@/$VERSION/g" "$ROOT/packaging/installer-stub.sh" > "$INSTALLER" base64 "$SOURCE_ARCHIVE" >> "$INSTALLER" chmod +x "$INSTALLER" ( cd "$DIST_DIR" sha256sum "$(basename "$SOURCE_ARCHIVE")" "$(basename "$INSTALLER")" > SHA256SUMS ) printf 'Created %s\nCreated %s\n' "$SOURCE_ARCHIVE" "$INSTALLER"