// 新建大区的部分配置脚本 // ! servers 和 master 使用单独脚本半自动配置,不在此文件配置范围内 const fs = require('fs'); const path = require('path'); // 新大区 env const ENV = 'ch1'; // 新大区数据库配置 const MONGO_URL = 'mongodb://yjzDbOp:yjz2023ZyDB@dds-8vb6c08497bde7141.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vb6c08497bde7142.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vb6c08497bde7143.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vb6c08497bde7144.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?replicaSet=mgset-516005505'; const SUB_MONGO_URL = 'mongodb://yjzDbOp:yjz2023ZyDB@dds-8vbc6a169e1dd6941.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbc6a169e1dd6942.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbc6a169e1dd6943.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbc6a169e1dd6944.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?replicaSet=mgset-516005504'; const GM_MONGO_URL = 'mongodb://yjzGmDbOp:yjz2023ZyGmDB@dds-8vbdf8c89bbdbd241.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd242.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd243.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdf8c89bbdbd244.mongodb.zhangbei.rds.aliyuncs.com:3717/zyzgm?replicaSet=mgset-515829436'; // 新大区redis配置 const REDIS_URL = 'r-8vbqgdc3h9ac77fdvi.redis.zhangbei.rds.aliyuncs.com'; const REDIS_PASS = 'hWCJ$HDajm9SN&&Z'; const REDLOCK_URL = 'r-8vbiuvng869tbuynxn.redis.zhangbei.rds.aliyuncs.com'; const REDLOCK_PASS = 'hWCJ$HDajm9SN&&Z'; // 新大区game监控配置 const MONITOR_ID = 4; const MONITOR_SECRET = '20cdf62e8ab0f3a751e7a5f7a0abbd33'; const MONITOR_SERVER_URL = 'ws://172.16.4.147:9092'; // 新大区web监控配置 const WEB_MONITOR_ID = 5; const WEB_MONITOR_SECRET = '1c85221722efa1daec1097cd802ac939'; const WEB_MONITOR_SERVER_URL = 'ws://172.16.4.147:9092'; // 新大区gm监控配置 const GM_MONITOR_ID = 3; const GM_MONITOR_SECRET = 'bc33c837395b6dc272fd67f4cf38ef77'; const GM_MONITOR_SERVER_URL = 'ws://172.16.4.147:9092'; // game-server 数据库配置文件 const GAME_SERVER_DATABASE_FILE = '../game-server/config/database.ts'; // game-server master 配置文件 const GAME_SERVER_MASTER_FILE = '../game-server/config/master.ts'; // game-server app.ts const GAME_SERVER_APP_FILE = '../game-server/app.ts'; // game-server pm2Config.js const GAME_SERVER_PM2_FILE = '../game-server/pm2Config.js'; // game-server pm2DistributeConfig.js const GAME_SERVER_PM2_DISTRIBUTE_FILE = '../game-server/pm2DistributeConfig.js'; // game-server log4js 配置文件 const GAME_SERVER_LOG4JS_PATH = '../game-server/config/'; // game-server log4js 模板文件 const GAME_SERVER_LOG4JS_TEMPLATE_FILE = './log4jsTemplate.ts'; // easy-monitor 配置文件 const EASY_MONITOR_PATH = '../game-server/xtransitConfig/'; // easy-monitor 配置文件模板 const EASY_MONITOR_TEMPLATE_FILE = './easyMonitorTemplate.js'; // web-server 配置路径 const WEB_SERVER_PATH = '../web-server/config/'; // web-server 配置模板 const WEB_SERVER_TEMPLATE_FILE = './webServerTemplate.ts'; // web-server plugin 配置路径 const WEB_SERVER_PLUGIN_PATH = '../web-server/config/plugin.ts'; // gm-server 配置路径 const GM_SERVER_PATH = '../gm-server/config/'; // gm-server 配置模板 const GM_SERVER_TEMPLATE_FILE = './gmServerTemplate.ts'; // gm-server plugin 配置路径 const GM_SERVER_PLUGIN_PATH = '../gm-server/config/plugin.ts'; // const masterData = require(GAME_SERVER_MASTER_FILE); const databaseData = require(GAME_SERVER_DATABASE_FILE); function updateDatabase () { databaseData[ENV] = { 'mongo': MONGO_URL, 'mongoSub': SUB_MONGO_URL, 'gmmongo': GM_MONGO_URL, 'redis': REDIS_URL, 'redispw': REDIS_PASS, 'redisLock': REDLOCK_URL, 'redisLockpw': REDLOCK_PASS, }; fs.writeFileSync(path.join(__dirname, GAME_SERVER_DATABASE_FILE), `module.exports = ${JSON.stringify(databaseData, null, 4)}`); } function modFile(filePath: string, reg: RegExp, content: string) { let fileContent = fs.readFileSync(filePath, 'utf-8'); fileContent = fileContent.replace(reg, content); fs.writeFileSync(filePath, fileContent); } function setupGameApp() { const reg: RegExp = /(const ALL_ENVS = '.*)(?=';)/; modFile(path.join(__dirname, GAME_SERVER_APP_FILE), reg, `$1|${ENV}`); } function setupPm2Config() { const reg: RegExp = /(let onairEnvs = \[.*)(?=])/; modFile(path.join(__dirname, GAME_SERVER_PM2_FILE), reg, `$1, '${ENV}'`); modFile(path.join(__dirname, GAME_SERVER_PM2_DISTRIBUTE_FILE), reg, `$1, '${ENV}'`); } function setupLog4jsConfig() { const envPath = path.join(__dirname, GAME_SERVER_LOG4JS_PATH, ENV); // 创建目录 if (!fs.existsSync(envPath)) { fs.mkdirSync(envPath); } // 直接将模板文件复制到目标文件 fs.copyFileSync(path.join(__dirname, GAME_SERVER_LOG4JS_TEMPLATE_FILE), `${envPath}/log4js.ts`); } function setupEasyMonitorConfig() { const configPath = path.join(__dirname, EASY_MONITOR_PATH, `${ENV}.js`); // 直接将模板文件复制到目标文件 fs.copyFileSync(path.join(__dirname, EASY_MONITOR_TEMPLATE_FILE), configPath); // 修改配置文件 let serverUrlReg: RegExp = /MONITOR_SERVER_URL/; modFile(configPath, serverUrlReg, `${MONITOR_SERVER_URL}`); let secretReg: RegExp = /MONITOR_SECRET/; modFile(configPath, secretReg, `${MONITOR_SECRET}`); let idReg: RegExp = /'MONITOR_ID'/; modFile(configPath, idReg, `${MONITOR_ID}`); } function setupWebConfig() { const configPath = path.join(__dirname, WEB_SERVER_PATH, `config.${ENV}.ts`); // 直接将模板文件复制到目标文件 fs.copyFileSync(path.join(__dirname, WEB_SERVER_TEMPLATE_FILE), configPath); // 修改配置文件 let serverUrlReg: RegExp = /WEB_MONITOR_SERVER_URL/; modFile(configPath, serverUrlReg, `${WEB_MONITOR_SERVER_URL}`); let secretReg: RegExp = /WEB_MONITOR_SECRET/; modFile(configPath, secretReg, `${WEB_MONITOR_SECRET}`); let idReg: RegExp = /'WEB_MONITOR_ID'/; modFile(configPath, idReg, `${WEB_MONITOR_ID}`); let mongoReg: RegExp = /MONGO_URL/; modFile(configPath, mongoReg, `${MONGO_URL}`); let gmMongoReg: RegExp = /GM_MONGO_URL/; modFile(configPath, gmMongoReg, `${GM_MONGO_URL}`); let redisReg: RegExp = /REDIS_URL/; modFile(configPath, redisReg, `${REDIS_URL}`); let redisPassReg: RegExp = /REDIS_PASS/; modFile(configPath, redisPassReg, `${REDIS_PASS}`); } function setupGmConfig() { const configPath = path.join(__dirname, GM_SERVER_PATH, `config.${ENV}.ts`); // 直接将模板文件复制到目标文件 fs.copyFileSync(path.join(__dirname, GM_SERVER_TEMPLATE_FILE), configPath); // 修改配置文件 let serverUrlReg: RegExp = /GM_MONITOR_SERVER_URL/; modFile(configPath, serverUrlReg, `${GM_MONITOR_SERVER_URL}`); let secretReg: RegExp = /GM_MONITOR_SECRET/; modFile(configPath, secretReg, `${GM_MONITOR_SECRET}`); let idReg: RegExp = /'GM_MONITOR_ID'/; modFile(configPath, idReg, `${GM_MONITOR_ID}`); let mongoReg: RegExp = /MONGO_URL/; modFile(configPath, mongoReg, `${MONGO_URL}`); let gmMongoReg: RegExp = /GM_MONGO_URL/; modFile(configPath, gmMongoReg, `${GM_MONGO_URL}`); let redisReg: RegExp = /REDIS_URL/; modFile(configPath, redisReg, `${REDIS_URL}`); let redisPassReg: RegExp = /REDIS_PASS/; modFile(configPath, redisPassReg, `${REDIS_PASS}`); } // 配置 web-server plugin function setupEggPlugin() { const reg: RegExp = /(env: \[.*)(?=])/; modFile(path.join(__dirname, WEB_SERVER_PLUGIN_PATH), reg, `$1, '${ENV}'`); modFile(path.join(__dirname, GM_SERVER_PLUGIN_PATH), reg, `$1, '${ENV}'`); } // setupEggPlugin(); // updateDatabase(); // setupGameApp(); // setupPm2Config(); // setupLog4jsConfig(); // setupEasyMonitorConfig(); // setupWebConfig(); // setupGmConfig();