35 lines
1.1 KiB
Bash
Executable File
35 lines
1.1 KiB
Bash
Executable File
#!/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"
|