PrintToVeraeTimeStamp/platform/macos/pkg/smoke-installer-ui.sh
George Lambert 78cc3a40ec fix(macos-pkg): product ID, Verae branding, license Agree in installer
The product .pkg was a bare component wrapper with no Installer.app UI.

- Distribution.xml.in: title Verae Print Stamp, org ai.verae, product id
- resources: welcome/license/readme/conclusion HTML + plum brand backgrounds
- license.html requires Agree/Disagree before install continues
- readme.html product identification table (bundle/pkg IDs, version, publisher)
- App bundle: AppIcon.icns, VeraeProductID/VeraeBrand keys, PRODUCT.txt sidecar
- build-pkg.sh uses productbuild --distribution --resources
- SKIP_SIGN=1 for local UI smoke; smoke-installer-ui.sh (15 checks)

Verify: SKIP_SIGN=1 ./platform/macos/pkg/build-pkg.sh
        ./platform/macos/pkg/smoke-installer-ui.sh
2026-10-14 05:25:28 -04:00

85 lines
2.8 KiB
Shell
Executable file

#!/usr/bin/env bash
# Smoke: assert macOS product pkg carries product ID, Verae branding, license UI.
# Prefer an existing dist pkg; else build unsigned with SKIP_SIGN=1.
set -euo pipefail
PKG_DIR="$(cd "$(dirname "$0")" && pwd)"
ROOT="$(cd "$PKG_DIR/../../.." && pwd)"
DIST="$ROOT/build/macos-pkg/dist"
VERSION="${VERSION:-}"
if [[ -z "$VERSION" && -f "$ROOT/internal/job/job.go" ]]; then
VERSION="$(grep -E 'HelperVersion[[:space:]]*=' "$ROOT/internal/job/job.go" | head -1 | sed -E 's/.*"([^"]+)".*/\1/')"
fi
VERSION="${VERSION:-0.3.6}"
PRODUCT="${1:-}"
if [[ -z "$PRODUCT" ]]; then
if [[ -f "$DIST/VeraePrintStamp-${VERSION}.pkg" ]]; then
PRODUCT="$DIST/VeraePrintStamp-${VERSION}.pkg"
elif [[ -f "$DIST/VeraePrintStamp-macos.pkg" ]]; then
PRODUCT="$DIST/VeraePrintStamp-macos.pkg"
else
echo "→ no existing pkg; building unsigned product (SKIP_SIGN=1)"
SKIP_SIGN=1 "$PKG_DIR/build-pkg.sh"
PRODUCT="$DIST/VeraePrintStamp-${VERSION}.pkg"
fi
fi
echo "→ smoke installer UI: $PRODUCT"
TMP="$(mktemp -d /tmp/verae-pkg-smoke.XXXXXX)"
trap 'rm -rf "$TMP"' EXIT
pkgutil --expand "$PRODUCT" "$TMP/exp"
pass=0
fail=0
check() {
local id="$1"; shift
if "$@" >/dev/null 2>&1; then
echo " PASS $id"
pass=$((pass+1))
else
echo " FAIL $id"
fail=$((fail+1))
fi
}
has_file() {
local name="$1"
local f
f="$(find "$TMP/exp" -name "$name" -print -quit 2>/dev/null || true)"
[[ -n "$f" && -s "$f" ]]
}
find_one() {
find "$TMP/exp" -name "$1" -print -quit 2>/dev/null || true
}
DIST_FILE=""
if [[ -f "$TMP/exp/Distribution" ]]; then
DIST_FILE="$TMP/exp/Distribution"
elif [[ -f "$TMP/exp/Distribution.xml" ]]; then
DIST_FILE="$TMP/exp/Distribution.xml"
fi
check has-distribution test -n "$DIST_FILE" -a -s "${DIST_FILE:-/dev/null}"
check title-verae grep -q 'Verae Print Stamp' "$DIST_FILE"
check product-id grep -q 'ai.verae.print-stamp' "$DIST_FILE"
check license-ref grep -qi 'license' "$DIST_FILE"
check welcome-ref grep -qi 'welcome' "$DIST_FILE"
check readme-ref grep -qi 'readme' "$DIST_FILE"
check background-ref grep -qi 'background' "$DIST_FILE"
check welcome-html has_file welcome.html
check license-html has_file license.html
check readme-html has_file readme.html
check conclusion-html has_file conclusion.html
check background-png has_file background.png
WELCOME="$(find_one welcome.html)"
LICENSE="$(find_one license.html)"
README="$(find_one readme.html)"
check welcome-branding grep -Eq '531B59|Verae branded|Product ID' "$WELCOME"
check license-accept grep -Eiq 'accept|Agree|License Agreement' "$LICENSE"
check readme-product-id grep -q 'ai.verae.print-stamp' "$README"
echo "════════════════════════════════"
echo " installer-ui PASS=$pass FAIL=$fail"
[[ "$fail" -eq 0 ]]