build: add spacetime local dev scripts
This commit is contained in:
52
server-rs/scripts/spacetime-dev.sh
Normal file
52
server-rs/scripts/spacetime-dev.sh
Normal file
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# 当前阶段只负责启动本地 standalone SpacetimeDB,先把服务器进程和数据目录口径固定下来,不提前耦合 publish 流程。
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
用法:
|
||||
./server-rs/scripts/spacetime-dev.sh
|
||||
GENARRATIVE_SPACETIME_PORT=3101 ./server-rs/scripts/spacetime-dev.sh
|
||||
|
||||
说明:
|
||||
1. 启动 Genarrative Rust 后端使用的本地 standalone SpacetimeDB
|
||||
2. 默认把本地数据目录放到 `server-rs/.spacetimedb/local`
|
||||
3. 当前阶段只负责启动 standalone server,暂不自动 publish `apps/spacetime-module`
|
||||
EOF
|
||||
}
|
||||
|
||||
if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
|
||||
usage
|
||||
exit 0
|
||||
fi
|
||||
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
SERVER_RS_DIR="$(cd -- "${SCRIPT_DIR}/.." && pwd)"
|
||||
LISTEN_HOST="${GENARRATIVE_SPACETIME_HOST:-127.0.0.1}"
|
||||
PORT="${GENARRATIVE_SPACETIME_PORT:-3001}"
|
||||
ROOT_DIR="${GENARRATIVE_SPACETIME_ROOT_DIR:-${SERVER_RS_DIR}/.spacetimedb/local}"
|
||||
|
||||
if [[ ! -f "${SERVER_RS_DIR}/apps/spacetime-module/README.md" ]]; then
|
||||
echo "[server-rs:spacetime-dev] 未找到 apps/spacetime-module/README.md,无法启动本地 SpacetimeDB 脚本。" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v spacetime >/dev/null 2>&1; then
|
||||
echo "[server-rs:spacetime-dev] 缺少 spacetime CLI。" >&2
|
||||
echo "[server-rs:spacetime-dev] 安装文档: https://spacetimedb.com/install" >&2
|
||||
echo "[server-rs:spacetime-dev] Linux/macOS 安装命令: curl -sSf https://install.spacetimedb.com | sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "${ROOT_DIR}"
|
||||
|
||||
echo "[server-rs:spacetime-dev] 工作目录: ${SERVER_RS_DIR}"
|
||||
echo "[server-rs:spacetime-dev] 数据目录: ${ROOT_DIR}"
|
||||
echo "[server-rs:spacetime-dev] 监听地址: ${LISTEN_HOST}:${PORT}"
|
||||
echo "[server-rs:spacetime-dev] 模式: standalone"
|
||||
echo "[server-rs:spacetime-dev] 说明: 当前阶段暂不自动 publish apps/spacetime-module"
|
||||
|
||||
cd "${SERVER_RS_DIR}"
|
||||
spacetime --root-dir "${ROOT_DIR}" start --edition standalone --listen-addr "${LISTEN_HOST}:${PORT}"
|
||||
Reference in New Issue
Block a user