Добавил сохранение и загрузку конфига

This commit is contained in:
Book Pauk
2019-02-13 17:43:13 +07:00
parent c8f9e0ac9d
commit c7637eb941
2 changed files with 49 additions and 5 deletions

View File

@@ -0,0 +1,32 @@
const fs = require('fs-extra');
const _ = require('lodash');
const propsToSave = [
'servers'
];
async function load(config, configFilename) {
if (!configFilename) {
configFilename = `${config.dataDir}/config.json`;
if (!await fs.pathExists(configFilename)) {
save(config);
return;
}
}
const data = await fs.readFile(configFilename, 'utf8');
Object.assign(config, JSON.parse(data));
}
async function save(config) {
const configFilename = `${config.dataDir}/config.json`;
const dataToSave = _.pick(config, propsToSave);
await fs.writeFile(configFilename, JSON.stringify(dataToSave, null, 4));
}
module.exports = {
load,
save
};

View File

@@ -1,9 +1,11 @@
const config = require('./config'); const config = require('./config');
const {initLogger, getLog} = require('./core/getLogger'); const {initLogger, getLog} = require('./core/getLogger');
initLogger(config); initLogger(config);
const log = getLog(); const log = getLog();
const configSaver = require('./config/configSaver');
const argv = require('minimist')(process.argv.slice(2));
const fs = require('fs-extra'); const fs = require('fs-extra');
const path = require('path'); const path = require('path');
const express = require('express'); const express = require('express');
@@ -23,15 +25,17 @@ async function init() {
await fs.remove(appDir); await fs.remove(appDir);
await fs.move(appNewDir, appDir); await fs.move(appNewDir, appDir);
} }
//загружаем конфиг из файла
await configSaver.load(config, argv.config);
} }
async function main() { async function main() {
const connPool = new SqliteConnectionPool(20, config);
log('Initializing'); log('Initializing');
await init(); await init();
log('Opening database'); log('Opening database');
const connPool = new SqliteConnectionPool(20, config);
await connPool.init(); await connPool.init();
//servers //servers
@@ -42,7 +46,7 @@ async function main() {
let devModule = undefined; let devModule = undefined;
if (serverConfig.branch == 'development') { if (serverConfig.branch == 'development') {
const devFileName = './dev.js'; //ignored by pkg -50Mb executable size const devFileName = './dev.js'; //require ignored by pkg -50Mb executable size
devModule = require(devFileName); devModule = require(devFileName);
devModule.webpackDevMiddleware(app); devModule.webpackDevMiddleware(app);
} }
@@ -80,4 +84,12 @@ async function main() {
} }
} }
main();
(async() => {
try {
await main();
} catch (e) {
console.error(e.message);
process.exit(1);
}
})();