Files
downloadwf/scripts/build.sh
T
2026-08-25 12:32:54 +02:00

43 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Build the whole project: Svelte frontend + Rust backend.
#
# Usage:
# bash scripts/build.sh # release build
# bash scripts/build.sh --debug # debug build (faster)
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
PROFILE="release"
if [[ "${1:-}" == "--debug" ]]; then
PROFILE="debug"
fi
command -v cargo >/dev/null 2>&1 || { echo "cargo (Rust) is required." >&2; exit 1; }
command -v npm >/dev/null 2>&1 || { echo "npm (Node.js) is required." >&2; exit 1; }
echo "==> Frontend (Svelte)"
cd "$ROOT/frontend"
if [[ ! -d node_modules ]]; then
echo " installing dependencies..."
npm install
fi
npm run build
echo "==> Backend (Rust)"
cd "$ROOT/backend"
if [[ "$PROFILE" == "release" ]]; then
cargo build --release
else
cargo build
fi
echo
echo "Build complete."
if [[ "$PROFILE" == "release" ]]; then
echo " binary : $ROOT/backend/target/release/filehost"
else
echo " binary : $ROOT/backend/target/debug/filehost"
fi
echo " frontend: $ROOT/frontend/dist"