diff --git a/common/config.js b/common/config.js index 2a3552431d3018e76cbb43f256584aa408302125..de3ac116d6cc15759e98dc5f1274a91daaa91b87 100644 --- a/common/config.js +++ b/common/config.js @@ -6,6 +6,7 @@ const packageConfig = require('../package.json').config; const __configDir = `${os.homedir()}/.config/lektor`; const __configFile = `${__configDir}/amadeus.ini`; +const __configLektord = `${__configDir}/lektor.ini`; fs.mkdirSync(__configDir, { recursive: true }); __dir = fs.opendirSync(__configDir); @@ -14,68 +15,33 @@ __dir.close(err => { }); var config = { - database: null, - host: null, - port: null, - loglevel: null, - loglektord: null, - attachmode: null, - clientport: null, + content: null, reload() { var fd = fs.openSync(__configFile, 'a'); fs.close(fd, err => {}); - var __config = ini.parse(fs.readFileSync(__configFile, 'utf-8')); + this.content = ini.parse(fs.readFileSync(__configFile, 'utf-8')); - __config.database ??= {}; - __config.lektord ??= {}; - __config.kurisu ??= {}; - __config.client ??= {}; - __config.log ??= {}; + this.content.database ??= {}; + this.content.lektord ??= {}; + this.content.kurisu ??= {}; + this.content.client ??= {}; + this.content.log ??= {}; - __config.kurisu.url ??= packageConfig.kurisu; - __config.client.port ??= packageConfig.port; - __config.log.level ??= 'debug'; - __config.log.lektord ??= true; - __config.database.path ??= '/home/kara/kara.db'; - __config.lektord.host ??= 'localhost'; - __config.lektord.port ??= '6600'; - __config.lektord.attach ??= true; + this.content.kurisu.url ??= packageConfig.kurisu; + this.content.client.port ??= packageConfig.port; + this.content.log.level ??= 'debug'; + this.content.log.lektord ??= true; + this.content.database.path ??= '/home/kara/kara.db'; + this.content.lektord.host ??= 'localhost'; + this.content.lektord.port ??= '6600'; + this.content.lektord.attach ??= true; - this.clientport = __config.client.port; - this.kurisuurl = __config.kurisu.url; - this.database = __config.database.path; - this.host = __config.lektord.host; - this.port = __config.lektord.port; - this.attachmode = __config.lektord.attach; - this.loglevel = __config.log.level; - this.loglektord = __config.log.lektord; - - fs.writeFileSync(__configFile, ini.stringify(__config)); + fs.writeFileSync(__configFile, ini.stringify(this.content)); this.flush(); }, flush() { - const __config = { - kurisu: { - url: this.kurisuurl, - }, - database: { - path: this.database, - }, - client: { - port: this.clientport, - }, - lektord: { - host: this.host, - port: this.port, - attach: this.attachmode, - }, - log: { - level: this.loglevel, - lektord: this.loglektord, - }, - }; - fs.writeFileSync(__configFile, ini.stringify(__config)); + fs.writeFileSync(__configFile, ini.stringify(this.content)); }, }; diff --git a/common/db.js b/common/db.js index 138ae129e5eb27f572125c38f6d7fe0ff6fd415c..0f608fbd00d8cc0d4b2ee7e601aa76000732832b 100644 --- a/common/db.js +++ b/common/db.js @@ -45,9 +45,9 @@ class KaraDatabase { * - m_karaPath: String * - m_db: sqlite3 database */ constructor() { - this.m_karaPath = config.database; + this.m_karaPath = config.content.database.path; this.m_db = new sqlite3.Database(this.m_karaPath); - logger.info('db', 'Create database from file ' + config.database); + logger.info('db', 'Create database from file ' + config.content.database.path); } /* Call this as a destructor */ diff --git a/common/lkt.js b/common/lkt.js index bcc7733c7f167bec9a5bcd8223c5e80d35fda853..c2d9881f748ef9b092e0b58a6257da6d13984734 100644 --- a/common/lkt.js +++ b/common/lkt.js @@ -24,8 +24,8 @@ class LktClient { this.m_socket = new net.Socket(); this.m_closed = true; const sockopt = { - port: config.port, - host: config.host, + port: config.content.lektord.port, + host: config.content.lektord.host, readable: true, writable: true, }; @@ -34,17 +34,17 @@ class LktClient { this.m_socket.setTimeout(3000); this.m_socket.setEncoding('utf8'); this.m_socket.on('timeout', () => { - logger.error('lkt', `Got timeout while connecting to localhost:${config.port}`); + logger.error('lkt', `Got timeout while connecting to localhost:${config.content.lektord.port}`); this.m_socket.end(); }); this.m_socket.on('ready', () => { - logger.debug('lkt', `Ready to use socket with localhost:${config.port}`); + logger.debug('lkt', `Ready to use socket with localhost:${config.content.lektord.port}`); this.m_online = true; }); this.m_socket.on('end', () => { - logger.info('lkt', `Disconnected from server localhost:${config.port}`); + logger.info('lkt', `Disconnected from server localhost:${config.content.lektord.port}`); this.m_online = false; }); @@ -57,12 +57,12 @@ class LktClient { }); this.m_socket.on('close', () => { - logger.info('lkt', `Socket localhost:${config.port} closed`); + logger.info('lkt', `Socket localhost:${config.content.lektord.port} closed`); this.m_online = false; }); this.m_socket.connect(sockopt, () => { - logger.info('lkt', `Socket connected to localhost:${config.port}`); + logger.info('lkt', `Socket connected to localhost:${config.content.lektord.port}`); this.m_online = true; }); @@ -289,8 +289,8 @@ class LktClient { function __getResult(socket) { return new Promise(resolv => { const sockopt = { - port: config.port, - host: config.host, + port: config.content.lektord.port, + host: config.content.lektord.host, readable: true, writable: true, }; @@ -300,13 +300,13 @@ class LktClient { socket.setEncoding('utf8'); socket.on('timeout', () => { - logger.error('lkt', `Got timeout while ping to localhost:${config.port}`); + logger.error('lkt', `Got timeout while ping to localhost:${config.content.lektord.port}`); result = false; resolv(result); }); socket.on('ready', () => { - logger.debug('lkt', `Ping success with localhost:${config.port}`); + logger.debug('lkt', `Ping success with localhost:${config.content.lektord.port}`); result = true; resolv(result); }); @@ -318,7 +318,7 @@ class LktClient { }); socket.connect(sockopt, () => { - logger.info('lkt', `Pinged localhost:${config.port}`); + logger.info('lkt', `Pinged localhost:${config.content.lektord.port}`); socket.destroy(); result = true; resolv(result); diff --git a/common/logger.js b/common/logger.js index c91112ff30a1d6e5052bca70ea4f13edebeb6d7e..fdd93b79ad7f65dbcc042aaf5f01c07ffa56b015 100644 --- a/common/logger.js +++ b/common/logger.js @@ -44,7 +44,7 @@ var __logger = winston.createLogger({ tailable: true, }), ], - level: `${config.loglevel}`, + level: `${config.content.log.level}`, json: false, handleExceptions: true, levels: __loggerCustomLevels.levels, @@ -88,7 +88,7 @@ var __lektord = data => { var logger = { logfile: __logFile, - lektord: config.loglektord ? __lektord : __nopLektord, + lektord: config.content.log.lektord ? __lektord : __nopLektord, debug: (cat, lg) => { __logger.debug(`${cat.padEnd(10)} | ${lg}`); }, diff --git a/instance/main.js b/instance/main.js index 2d9d0d20529a40105361ea9f9e66af15a55d9ffd..239e7cc6fd76b55be57bbb18692506f28893ddcd 100644 --- a/instance/main.js +++ b/instance/main.js @@ -34,14 +34,14 @@ function addIpcToButton(btnId, ipc) { } function autoFillSettings() { - $('#inputHost').val(config.host); - $('#inputPort').val(config.port); + $('#inputHost').val(config.content.lektord.host); + $('#inputPort').val(config.content.lektord.port); $('#inputAttachMode').prop('checked', true); - $('#inputDbPath').val(config.database); - $('#inputLogLektord').prop('checked', config.loglektord); - $(`#log${config.loglevel.toUpperCase()}`).prop('checked', true); - $('#inputKurisuUrl').val(config.kurisuurl); - $('#inputClientPort').val(config.clientport); + $('#inputDbPath').val(config.content.database.path); + $('#inputLogLektord').prop('checked', config.content.log.lektord); + $(`#log${config.content.log.level.toUpperCase()}`).prop('checked', true); + $('#inputKurisuUrl').val(config.content.kurisu.url); + $('#inputClientPort').val(config.content.client.port); } function flushFillSettings() { diff --git a/main.js b/main.js index c3192d6d877726c5b2856f9f930e385efcf7dbd9..22d765982902469e6f38fbe104dbb0b6c099534e 100644 --- a/main.js +++ b/main.js @@ -22,7 +22,7 @@ class Lektor { constructor() { this.closed = true; isRunning({ win: 'lektord.exe', linux: 'lektord', mac: 'lektord' }).then(v => { - if (v && config.attachmode) { + if (v && config.content.lektord.attach) { logger.info('main', `Lektord is running! Attach to it`); } else if (v) { logger.error('error', `Lektord is running and attach mode is disable, exit!`); @@ -107,7 +107,7 @@ function createUserViewWindow() { contextIsolation: true, }, }); - uv.loadURL(`http://localhost:${config.clientport}/`); + uv.loadURL(`http://localhost:${config.content.client.port}/`); uv.once('ready-to-show', () => { uv.show(); }); @@ -127,7 +127,7 @@ function createKurisuWindow() { contextIsolation: true, }, }); - kurisu.loadURL(config.kurisuurl); + kurisu.loadURL(config.content.kurisu.url); kurisu.once('ready-to-show', () => { kurisu.show(); }); @@ -331,19 +331,26 @@ ipcMain.on('get-runnings', (event, arg) => { ipcMain.on('set-settings', (event, arg) => { logger.info('main', `Settings are now: ${JSON.stringify(arg)}`); - config.host = arg.host; - config.port = arg.port; - config.database = arg.db; - config.loglektord = arg.loglektord; - config.attachmode = arg.attachmode; - config.kurisuurl = arg.kurisuurl; - config.clientport = arg.clientport; + + config.content.lektord.host = arg.host; + config.content.lektord.port = arg.port; + config.content.lektord.attach = arg.attachmode; + + config.content.database.path = arg.db; + + config.content.kurisu.url = arg.kurisuurl; + + config.content.client.port = arg.clientport; /* prettier-ignore */ - config.loglevel = arg.loglevel.ERROR ? 'error' - : arg.loglevel.WARNING ? 'warning' - : arg.loglevel.INFO ? 'info' - : 'debug'; + config.content.log.lektord = arg.loglektord; + config.content.log.level = arg.loglevel.ERROR + ? 'error' + : arg.loglevel.WARNING + ? 'warning' + : arg.loglevel.INFO + ? 'info' + : 'debug'; config.flush(); });