65 lines
2.5 KiB
Bash
Executable File
65 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# 检查攻击地点/打击线是否完整(与 seed.js 一致)
|
|
# 用法: DB_PATH=server/data.db ./scripts/check-attack-locations.sh
|
|
# 裸机: cd /root/usa && ./scripts/check-attack-locations.sh
|
|
|
|
set -e
|
|
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$(dirname "$0")/.." && pwd)}"
|
|
DB_PATH="${DB_PATH:-$PROJECT_ROOT/server/data.db}"
|
|
|
|
echo "=========================================="
|
|
echo "攻击地点 / 打击线 检查"
|
|
echo "DB: $DB_PATH"
|
|
echo "=========================================="
|
|
|
|
if [[ ! -f "$DB_PATH" ]]; then
|
|
echo "错误: 数据库文件不存在"
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v sqlite3 &>/dev/null; then
|
|
echo "需要 sqlite3。安装: yum install sqlite 或 apt install sqlite3"
|
|
exit 1
|
|
fi
|
|
|
|
# 期望数量(与 server/seed.js 一致)
|
|
EXPECT_US=62 # getUsLocations: naval + attacked + newBases
|
|
EXPECT_IRAN=18 # iranLocs 条数
|
|
EXPECT_ISRAEL=4
|
|
EXPECT_LINCOLN=5
|
|
EXPECT_FORD=7
|
|
|
|
n_us=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM key_location WHERE side='us';" 2>/dev/null || echo "0")
|
|
n_iran=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM key_location WHERE side='iran';" 2>/dev/null || echo "0")
|
|
n_israel=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM map_strike_line WHERE source_id='israel';" 2>/dev/null || echo "0")
|
|
n_lincoln=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM map_strike_line WHERE source_id='lincoln';" 2>/dev/null || echo "0")
|
|
n_ford=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM map_strike_line WHERE source_id='ford';" 2>/dev/null || echo "0")
|
|
|
|
echo ""
|
|
echo "key_location:"
|
|
echo " us (美军基地等): 当前 $n_us 条,期望 $EXPECT_US 条"
|
|
echo " iran (伊朗被袭点): 当前 $n_iran 条,期望 $EXPECT_IRAN 条"
|
|
echo ""
|
|
echo "map_strike_line (盟军打击伊朗):"
|
|
echo " israel: 当前 $n_israel 条,期望 $EXPECT_ISRAEL 条"
|
|
echo " lincoln: 当前 $n_lincoln 条,期望 $EXPECT_LINCOLN 条"
|
|
echo " ford: 当前 $n_ford 条,期望 $EXPECT_FORD 条"
|
|
echo "=========================================="
|
|
|
|
ok=0
|
|
[[ "$n_us" -ge "$EXPECT_US" ]] && [[ "$n_iran" -ge "$EXPECT_IRAN" ]] && \
|
|
[[ "$n_israel" -ge "$EXPECT_ISRAEL" ]] && [[ "$n_lincoln" -ge "$EXPECT_LINCOLN" ]] && \
|
|
[[ "$n_ford" -ge "$EXPECT_FORD" ]] && ok=1
|
|
|
|
if [[ $ok -eq 1 ]]; then
|
|
echo "结论: 攻击地点/打击线数量正常"
|
|
exit 0
|
|
fi
|
|
|
|
echo "结论: 数量不足,请在生产执行 seed 以与当前代码一致:"
|
|
echo " cd $PROJECT_ROOT"
|
|
echo " cp server/data.db server/data.db.bak-\$(date +%Y%m%d-%H%M%S)"
|
|
echo " DB_PATH=server/data.db node server/seed.js"
|
|
echo " 重启 API 后刷新页面"
|
|
exit 1
|