#!/usr/bin/env bash
set -euo pipefail
KIT=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
CONFIG=${1:-"$KIT/config/deploy.env"}
set -a
source "$CONFIG"
set +a
python3 "$KIT/scripts/configure.py" --validate-only
cd "$APP_ROOT"
"$NODE_BIN" - <<'JS'
const fs=require('fs'),path=require('path'),{createRequire}=require('module');
const req=createRequire(path.resolve('services/gateway-service/package.json'));
for(const m of ['dmdb','qrcode','dotenv','@nestjs/core','express','mysql2','mqtt']){req(m);console.log(m,'OK')}
const c=req('dotenv').parse(fs.readFileSync('services/gateway-service/.env'));
if(c.DB_KIND!=='dm')throw Error('DB_KIND必须为dm');
if(!['127.0.0.1','0.0.0.0'].includes(c.HOST))throw Error('HOST必须为127.0.0.1或0.0.0.0，与Nginx upstream一致');
for(const k of ['DM_HOST','DM_USER','DM_PASSWORD','JWT_SECRET']){
 if(!c[k]||c[k].includes('CHANGE_ME'))throw Error('尚未填写 '+k);
}
for(const a of ['web-school','web-regulator','screen','mobile-device'])if(!fs.existsSync('apps/'+a+'/dist/index.html'))throw Error(a+' dist缺失');
console.log('运行文件及私有配置检查通过；下一步做实际数据库和页面验收。');
JS

"$NODE_BIN" "$KIT/scripts/dm-readonly-probe.cjs"
