Fix oputil hang
This commit is contained in:
parent
c9674e68fb
commit
f3cd36ad07
|
@ -100,7 +100,14 @@ function init(configPath, options, cb) {
|
||||||
};
|
};
|
||||||
|
|
||||||
const ConfigCache = require('./config_cache.js');
|
const ConfigCache = require('./config_cache.js');
|
||||||
ConfigCache.getConfigWithOptions( { filePath : configPath, callback : changed }, (err, config) => {
|
const getConfigOptions = {
|
||||||
|
filePath : configPath,
|
||||||
|
noWatch : options.noWatch,
|
||||||
|
};
|
||||||
|
if(!options.noWatch) {
|
||||||
|
getConfigOptions.callback = changed;
|
||||||
|
}
|
||||||
|
ConfigCache.getConfigWithOptions(getConfigOptions, (err, config) => {
|
||||||
if(err) {
|
if(err) {
|
||||||
return cb(err);
|
return cb(err);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,24 +19,26 @@ module.exports = new class ConfigCache
|
||||||
if(options.forceReCache || !cached) {
|
if(options.forceReCache || !cached) {
|
||||||
this.recacheConfigFromFile(options.filePath, (err, config) => {
|
this.recacheConfigFromFile(options.filePath, (err, config) => {
|
||||||
if(!err && !cached) {
|
if(!err && !cached) {
|
||||||
const watcher = sane(
|
if(!options.noWatch) {
|
||||||
paths.dirname(options.filePath),
|
const watcher = sane(
|
||||||
{
|
paths.dirname(options.filePath),
|
||||||
glob : `**/${paths.basename(options.filePath)}`
|
{
|
||||||
}
|
glob : `**/${paths.basename(options.filePath)}`
|
||||||
);
|
|
||||||
|
|
||||||
watcher.on('change', (fileName, fileRoot) => {
|
|
||||||
require('./logger.js').log.info( { fileName, fileRoot }, 'Configuration file changed; re-caching');
|
|
||||||
|
|
||||||
this.recacheConfigFromFile(paths.join(fileRoot, fileName), err => {
|
|
||||||
if(!err) {
|
|
||||||
if(options.callback) {
|
|
||||||
options.callback( { fileName, fileRoot } );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
watcher.on('change', (fileName, fileRoot) => {
|
||||||
|
require('./logger.js').log.info( { fileName, fileRoot }, 'Configuration file changed; re-caching');
|
||||||
|
|
||||||
|
this.recacheConfigFromFile(paths.join(fileRoot, fileName), err => {
|
||||||
|
if(!err) {
|
||||||
|
if(options.callback) {
|
||||||
|
options.callback( { fileName, fileRoot } );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
return cb(err, config, true);
|
return cb(err, config, true);
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const resolvePath = require('../misc_util.js').resolvePath;
|
|
||||||
|
|
||||||
const config = require('../../core/config.js');
|
const config = require('../../core/config.js');
|
||||||
const db = require('../../core/database.js');
|
const db = require('../../core/database.js');
|
||||||
|
|
||||||
|
@ -46,7 +44,7 @@ function printUsageAndSetExitCode(errMsg, exitCode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDefaultConfigPath() {
|
function getDefaultConfigPath() {
|
||||||
return './config/';
|
return './config/';
|
||||||
}
|
}
|
||||||
|
|
||||||
function getConfigPath() {
|
function getConfigPath() {
|
||||||
|
@ -57,7 +55,7 @@ function getConfigPath() {
|
||||||
function initConfig(cb) {
|
function initConfig(cb) {
|
||||||
const configPath = getConfigPath();
|
const configPath = getConfigPath();
|
||||||
|
|
||||||
config.init(configPath, { keepWsc : true }, cb);
|
config.init(configPath, { keepWsc : true, noWatch : true }, cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
function initConfigAndDatabases(cb) {
|
function initConfigAndDatabases(cb) {
|
||||||
|
|
Loading…
Reference in New Issue