✨ feat(script): 增加大区时自动处理代码的脚本和模板
This commit is contained in:
185
scripts/newServerConfig.ts
Normal file
185
scripts/newServerConfig.ts
Normal file
@@ -0,0 +1,185 @@
|
||||
// 新建大区的部分配置脚本
|
||||
// ! 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';
|
||||
|
||||
// gm-server 配置路径
|
||||
const GM_SERVER_PATH = '../gm-server/config/';
|
||||
// gm-server 配置模板
|
||||
const GM_SERVER_TEMPLATE_FILE = './gmServerTemplate.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}`);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// setupGameApp();
|
||||
// setupPm2Config();
|
||||
// setupLog4jsConfig();
|
||||
// setupEasyMonitorConfig();
|
||||
// setupWebConfig();
|
||||
// setupGmConfig();
|
||||
Reference in New Issue
Block a user