improved error handling of wrong port configuration, #3177

This commit is contained in:
zadam 2022-10-01 15:32:30 +02:00
parent 20ff5627d8
commit 6d4ef4ee3d
3 changed files with 27 additions and 15 deletions

View file

@ -8,14 +8,12 @@ const resourceDir = require('./resource_dir');
const configSampleFilePath = path.resolve(resourceDir.RESOURCE_DIR, "config-sample.ini");
const configFilePath = dataDir.TRILIUM_DATA_DIR + '/config.ini';
if (!fs.existsSync(configFilePath)) {
if (!fs.existsSync(dataDir.CONFIG_INI_PATH)) {
const configSample = fs.readFileSync(configSampleFilePath).toString('utf8');
fs.writeFileSync(configFilePath, configSample);
fs.writeFileSync(dataDir.CONFIG_INI_PATH, configSample);
}
const config = ini.parse(fs.readFileSync(configFilePath, 'utf-8'));
const config = ini.parse(fs.readFileSync(dataDir.CONFIG_INI_PATH, 'utf-8'));
module.exports = config;
module.exports = config;

View file

@ -64,11 +64,13 @@ const DOCUMENT_PATH = TRILIUM_DATA_DIR + path.sep + "document.db";
const BACKUP_DIR = TRILIUM_DATA_DIR + path.sep + "backup";
const LOG_DIR = TRILIUM_DATA_DIR + path.sep + "log";
const ANONYMIZED_DB_DIR = TRILIUM_DATA_DIR + path.sep + "anonymized-db";
const CONFIG_INI_PATH = TRILIUM_DATA_DIR + '/config.ini';
module.exports = {
TRILIUM_DATA_DIR,
DOCUMENT_PATH,
BACKUP_DIR,
LOG_DIR,
ANONYMIZED_DB_DIR
ANONYMIZED_DB_DIR,
CONFIG_INI_PATH
};

View file

@ -1,15 +1,27 @@
const config = require('./config');
const utils = require('./utils');
const env = require('./env');
const dataDir = require('./data_dir');
function parseAndValidate(portStr, source) {
const portNum = parseInt(portStr);
if (!portNum || portNum < 0 || portNum >= 65536) {
console.log(`FATAL ERROR: Invalid port value "${portStr}" from ${source}, should be a number between 0 and 65536.`);
process.exit(-1);
}
return portNum;
}
let port;
if (process.env.TRILIUM_PORT) {
module.exports = parseInt(process.env.TRILIUM_PORT);
return;
port = parseAndValidate(process.env.TRILIUM_PORT, "environment variable TRILIUM_PORT");
} else if (utils.isElectron()) {
port = env.isDev() ? 37740 : 37840;
} else {
port = parseAndValidate(config['Network']['port'] || '3000', "Network.port in " + dataDir.CONFIG_INI_PATH);
}
if (utils.isElectron()) {
module.exports = env.isDev() ? 37740 : 37840;
}
else {
module.exports = config['Network']['port'] || '3000';
}
module.exports = port;