mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
64 lines
1.3 KiB
Bash
Executable File
64 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
cd "$ROOT_DIR"
|
|
|
|
electron_args=("$@")
|
|
if [[ ${#electron_args[@]} -eq 0 ]]; then
|
|
electron_args=(--start --dev)
|
|
fi
|
|
|
|
if ! command -v bun >/dev/null 2>&1; then
|
|
echo "[ERROR] bun not found in PATH" >&2
|
|
exit 1
|
|
fi
|
|
|
|
TS_WATCH_PID=""
|
|
RENDER_WATCH_PID=""
|
|
|
|
cleanup() {
|
|
local pids=("$TS_WATCH_PID" "$RENDER_WATCH_PID")
|
|
for pid in "${pids[@]}"; do
|
|
if [[ -n "$pid" ]] && kill -0 "$pid" 2>/dev/null; then
|
|
kill "$pid" 2>/dev/null || true
|
|
fi
|
|
done
|
|
}
|
|
|
|
trap cleanup EXIT INT TERM
|
|
|
|
sync_renderer_assets() {
|
|
mkdir -p dist/renderer
|
|
cp src/renderer/index.html src/renderer/style.css dist/renderer/
|
|
mkdir -p dist/renderer/fonts
|
|
cp -R src/renderer/fonts/. dist/renderer/fonts/
|
|
}
|
|
|
|
echo "[INFO] Syncing renderer static assets"
|
|
sync_renderer_assets
|
|
|
|
echo "[INFO] Running initial compile"
|
|
bun run tsc
|
|
bun run build:renderer
|
|
|
|
echo "[INFO] Starting TypeScript watch"
|
|
bun run tsc --watch --preserveWatchOutput &
|
|
TS_WATCH_PID=$!
|
|
|
|
echo "[INFO] Starting renderer watch"
|
|
bunx esbuild src/renderer/renderer.ts \
|
|
--bundle \
|
|
--platform=browser \
|
|
--format=esm \
|
|
--target=es2022 \
|
|
--outfile=dist/renderer/renderer.js \
|
|
--sourcemap \
|
|
--watch &
|
|
RENDER_WATCH_PID=$!
|
|
|
|
echo "[INFO] Launching Electron with args: ${electron_args[*]}"
|
|
bun run electron . "${electron_args[@]}"
|