#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)" cd "$ROOT_DIR" OUT_ROOT="dist/release" WIN_OUT="${OUT_ROOT}/_win_portable" MAC_OUT="${OUT_ROOT}/_mac" COMBINED_OUT="${OUT_ROOT}/combined" echo "[build-combined] Cleaning output folders..." rm -rf "$WIN_OUT" "$MAC_OUT" "$COMBINED_OUT" mkdir -p "$WIN_OUT" "$MAC_OUT" "$COMBINED_OUT" echo "[build-combined] Building renderer..." NODE_OPTIONS=--no-warnings npx vite build echo "[build-combined] Building Windows x64 portable..." NODE_OPTIONS=--no-warnings npx electron-builder \ --win --x64 \ --config.win.target=portable \ --config.directories.output="$WIN_OUT" echo "[build-combined] Packing Windows portable zip..." zip -j -o "${WIN_OUT}/Telegram-Invite-Automation-win-portable-x64.zip" \ "${WIN_OUT}"/Telegram-Invite-Automation-win-x64-*.exe echo "[build-combined] Building macOS..." NODE_OPTIONS=--no-warnings npx electron-builder \ --mac \ --config.directories.output="$MAC_OUT" echo "[build-combined] Collecting artifacts into ${COMBINED_OUT}..." find "$WIN_OUT" -maxdepth 1 -type f \( \ -name "*.exe" -o \ -name "*.zip" -o \ -name "*.blockmap" -o \ -name "*.yml" \ \) -exec cp {} "$COMBINED_OUT"/ \; find "$MAC_OUT" -maxdepth 1 -type f \( \ -name "*.dmg" -o \ -name "*.zip" -o \ -name "*.blockmap" -o \ -name "*.yml" \ \) -exec cp {} "$COMBINED_OUT"/ \; echo "[build-combined] Done." echo "[build-combined] Artifacts: ${COMBINED_OUT}"