41 lines
1.1 KiB
Bash
Executable File
41 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
source "$ROOT_DIR/scripts/release-version.sh"
|
|
|
|
DIST_DIR="${DIST_DIR:-$ROOT_DIR/dist}"
|
|
PER_ARCH_INSTALLER_MAX_BYTES="${PER_ARCH_INSTALLER_MAX_BYTES:-400000}"
|
|
PER_ARCH_INSTALLER_EXTENSION="${PER_ARCH_INSTALLER_EXTENSION:-tar.xz}"
|
|
|
|
fail() {
|
|
echo "release size verification failed: $*" >&2
|
|
exit 1
|
|
}
|
|
|
|
file_size() {
|
|
stat -f '%z' "$1"
|
|
}
|
|
|
|
verify_under_budget() {
|
|
local path="$1"
|
|
[[ -f "$path" ]] || fail "missing $path"
|
|
|
|
local bytes
|
|
bytes="$(file_size "$path")"
|
|
if (( bytes >= PER_ARCH_INSTALLER_MAX_BYTES )); then
|
|
fail "$path is $bytes bytes; per-architecture installer budget is < $PER_ARCH_INSTALLER_MAX_BYTES bytes"
|
|
fi
|
|
|
|
echo "OK: $path is $bytes bytes (< $PER_ARCH_INSTALLER_MAX_BYTES)."
|
|
}
|
|
|
|
if (( $# > 0 )); then
|
|
for artifact in "$@"; do
|
|
verify_under_budget "$artifact"
|
|
done
|
|
else
|
|
verify_under_budget "$DIST_DIR/IHatePDFs-v$RELEASE_VERSION-macos-arm64.$PER_ARCH_INSTALLER_EXTENSION"
|
|
verify_under_budget "$DIST_DIR/IHatePDFs-v$RELEASE_VERSION-macos-x86_64.$PER_ARCH_INSTALLER_EXTENSION"
|
|
fi
|