48 lines
1.8 KiB
Bash
Executable File
48 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Build the synth-visualiser WASM package and place it in www/pkg/.
|
|
#
|
|
# Usage:
|
|
# ./build-web.sh # release build (optimised)
|
|
# ./build-web.sh --dev # dev build (faster, no wasm-opt)
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
# ── Argument parsing ──────────────────────────────────────────────────────────
|
|
MODE="release"
|
|
WASM_PACK_PROFILE="--release"
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
--dev) MODE="dev"; WASM_PACK_PROFILE="--dev" ;;
|
|
--help) echo "Usage: $0 [--dev]"; exit 0 ;;
|
|
*) echo "Unknown argument: $arg"; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
# ── Preflight checks ──────────────────────────────────────────────────────────
|
|
if ! command -v wasm-pack &>/dev/null; then
|
|
echo "error: wasm-pack not found. Install it with:"
|
|
echo " cargo install wasm-pack"
|
|
exit 1
|
|
fi
|
|
|
|
if ! rustup target list --installed | grep -q "wasm32-unknown-unknown"; then
|
|
echo "Adding wasm32-unknown-unknown target..."
|
|
rustup target add wasm32-unknown-unknown
|
|
fi
|
|
|
|
# ── Build ─────────────────────────────────────────────────────────────────────
|
|
echo "Building synth-visualiser ($MODE)..."
|
|
wasm-pack build crates/synth-visualiser \
|
|
$WASM_PACK_PROFILE \
|
|
--target web \
|
|
--out-dir ../../www/pkg
|
|
|
|
echo ""
|
|
echo "Done. Serve with:"
|
|
echo " npx serve www"
|
|
echo " or"
|
|
echo " python3 -m http.server --directory www 8080"
|