92 lines
2.7 KiB
Bash
92 lines
2.7 KiB
Bash
#!/usr/bin/env bash
|
|
# Dev commands: play, editor, lint, format, test, verify, screenshot
|
|
|
|
cmd_play() {
|
|
echo -e "${BLUE}Launching Magic Civilization...${NC}"
|
|
WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-0}" \
|
|
XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" \
|
|
$GODOT_BIN --path "$GAME_DIR" --rendering-method gl_compatibility "$@"
|
|
}
|
|
|
|
cmd_editor() {
|
|
echo -e "${BLUE}Opening Godot editor...${NC}"
|
|
WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-0}" \
|
|
XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" \
|
|
$GODOT_BIN --path "$GAME_DIR" -e --rendering-method gl_compatibility "$@" &
|
|
}
|
|
|
|
cmd_lint() {
|
|
echo -e "${BLUE}Checking gdtoolkit config sync...${NC}"
|
|
lilith-gdtoolkit-sync --check || {
|
|
echo -e "${YELLOW}Config drift detected — syncing...${NC}"
|
|
lilith-gdtoolkit-sync
|
|
}
|
|
echo -e "${BLUE}Linting src/game/engine/src/...${NC}"
|
|
gdlint "$GAME_DIR/engine/src/" "$@"
|
|
}
|
|
|
|
cmd_format() {
|
|
echo -e "${BLUE}Checking gdtoolkit config sync...${NC}"
|
|
lilith-gdtoolkit-sync --check || {
|
|
echo -e "${YELLOW}Config drift detected — syncing...${NC}"
|
|
lilith-gdtoolkit-sync
|
|
}
|
|
echo -e "${BLUE}Formatting src/game/engine/src/...${NC}"
|
|
gdformat "$GAME_DIR/engine/src/" "$@"
|
|
}
|
|
|
|
cmd_test() {
|
|
local exit_code=0
|
|
|
|
echo -e "${BLUE}Running GUT tests (GDScript)...${NC}"
|
|
WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-0}" \
|
|
XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" \
|
|
$GODOT_BIN --path "$GAME_DIR" --headless --script res://addons/gut/gut_cmdln.gd \
|
|
-gexit "$@" || exit_code=$?
|
|
|
|
echo ""
|
|
echo -e "${BLUE}Running Rust tests (simulator)...${NC}"
|
|
(cd "$SIMULATOR_DIR" && cargo test --workspace) || exit_code=$?
|
|
|
|
echo ""
|
|
echo -e "${BLUE}Running vitest (guide)...${NC}"
|
|
pnpm --prefix "$GUIDE_DIR" test || exit_code=$?
|
|
|
|
return $exit_code
|
|
}
|
|
|
|
cmd_verify() {
|
|
local exit_code=0
|
|
|
|
echo -e "${BLUE}[1/4] GDScript lint...${NC}"
|
|
gdlint "$GAME_DIR/engine/src/" || exit_code=$?
|
|
|
|
echo ""
|
|
echo -e "${BLUE}[2/4] Guide typecheck...${NC}"
|
|
pnpm --prefix "$GUIDE_DIR" typecheck || exit_code=$?
|
|
|
|
echo ""
|
|
echo -e "${BLUE}[3/4] Rust build check (simulator)...${NC}"
|
|
(cd "$SIMULATOR_DIR" && cargo check --workspace) || exit_code=$?
|
|
|
|
echo ""
|
|
echo -e "${BLUE}[4/4] Tests (GUT + Rust + vitest)...${NC}"
|
|
cmd_test || exit_code=$?
|
|
|
|
echo ""
|
|
if [ "$exit_code" -eq 0 ]; then
|
|
echo -e "${GREEN}✓ All checks passed${NC}"
|
|
else
|
|
echo -e "${RED}✗ One or more checks failed${NC}"
|
|
fi
|
|
return $exit_code
|
|
}
|
|
|
|
cmd_screenshot() {
|
|
"$REPO_ROOT/tools/screenshot.sh" "$@"
|
|
}
|
|
|
|
cmd_guide() {
|
|
echo -e "${BLUE}Starting guide dev server (port 5800)...${NC}"
|
|
pnpm --prefix "$GUIDE_DIR" dev
|
|
}
|