build(desktop): add electronbuild.sh — multi-platform installer build
Convenience wrapper around `pnpm build:all` in packages/desktop that builds installers for mac/win/linux × arm64/x64 and collects the distributable artifacts into packages/desktop/installers/. Excluded from rsync deploy by deploy.sh.
This commit is contained in:
Executable
+53
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
# ============================================================
|
||||
# Backspace — Electron Installer Build Script
|
||||
# ============================================================
|
||||
# Builds Electron installers for all platforms/architectures
|
||||
# (macOS, Windows, Linux × arm64, x64) and copies the user-
|
||||
# distributable artifacts into packages/desktop/installers/.
|
||||
#
|
||||
# Usage:
|
||||
# ./electronbuild.sh
|
||||
# ============================================================
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
DESKTOP_DIR="$REPO_ROOT/packages/desktop"
|
||||
DIST_DIR="$DESKTOP_DIR/dist-electron"
|
||||
INSTALLERS_DIR="$DESKTOP_DIR/installers"
|
||||
|
||||
if [ ! -d "$DESKTOP_DIR" ]; then
|
||||
echo "Error: $DESKTOP_DIR not found" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "==> Building Electron installers (mac/win/linux × arm64/x64)..."
|
||||
cd "$DESKTOP_DIR"
|
||||
pnpm build:all
|
||||
|
||||
echo "==> Copying installers to $INSTALLERS_DIR"
|
||||
mkdir -p "$INSTALLERS_DIR"
|
||||
rm -f "$INSTALLERS_DIR"/*.dmg \
|
||||
"$INSTALLERS_DIR"/*.exe \
|
||||
"$INSTALLERS_DIR"/*.AppImage \
|
||||
"$INSTALLERS_DIR"/*.deb \
|
||||
"$INSTALLERS_DIR"/*.zip
|
||||
|
||||
shopt -s nullglob
|
||||
copied=0
|
||||
for ext in dmg exe AppImage deb zip; do
|
||||
for f in "$DIST_DIR"/*."$ext"; do
|
||||
cp "$f" "$INSTALLERS_DIR/"
|
||||
copied=$((copied + 1))
|
||||
done
|
||||
done
|
||||
shopt -u nullglob
|
||||
|
||||
if [ "$copied" -eq 0 ]; then
|
||||
echo "Error: no installer artifacts found in $DIST_DIR" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "==> Done. $copied installer(s) in $INSTALLERS_DIR:"
|
||||
ls -lh "$INSTALLERS_DIR" | awk 'NR>1 {printf " %-40s %s\n", $9, $5}'
|
||||
Reference in New Issue
Block a user