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