report errors from any mixin, and close the server when any occur
This commit is contained in:
parent
bbef901bf9
commit
bce10f8079
|
@ -127,7 +127,7 @@
|
||||||
"grunt-jscs": "^1.8.0",
|
"grunt-jscs": "^1.8.0",
|
||||||
"grunt-karma": "^0.12.0",
|
"grunt-karma": "^0.12.0",
|
||||||
"grunt-replace": "^0.7.9",
|
"grunt-replace": "^0.7.9",
|
||||||
"grunt-run": "^0.3.0",
|
"grunt-run": "spalger/grunt-run#master",
|
||||||
"grunt-s3": "^0.2.0-alpha.3",
|
"grunt-s3": "^0.2.0-alpha.3",
|
||||||
"grunt-simple-mocha": "^0.4.0",
|
"grunt-simple-mocha": "^0.4.0",
|
||||||
"html-entities": "^1.1.1",
|
"html-entities": "^1.1.1",
|
||||||
|
|
|
@ -84,6 +84,13 @@ module.exports = function (program) {
|
||||||
|
|
||||||
set('plugins.paths', [].concat(opts.pluginPath || []));
|
set('plugins.paths', [].concat(opts.pluginPath || []));
|
||||||
|
|
||||||
return new KbnServer(_.merge(settings, this.getUnknownOptions()));
|
let server = new KbnServer(_.merge(settings, this.getUnknownOptions()));
|
||||||
|
|
||||||
|
server.ready().catch(function (err) {
|
||||||
|
console.error(err.stack);
|
||||||
|
process.exit(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
return server;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -77,6 +77,8 @@ module.exports = function (kbnServer, server, config) {
|
||||||
plugins: kbnServer.plugins
|
plugins: kbnServer.plugins
|
||||||
});
|
});
|
||||||
|
|
||||||
|
server.on('close', _.bindKey(optmzr.disable || _.noop, optmzr));
|
||||||
|
|
||||||
kbnServer.mixin(require('./browserTests'))
|
kbnServer.mixin(require('./browserTests'))
|
||||||
.then(function () {
|
.then(function () {
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,16 @@ module.exports = class KbnServer extends EventEmitter {
|
||||||
.each(function (fn) {
|
.each(function (fn) {
|
||||||
return fn.call(self, self, self.server, self.config);
|
return fn.call(self, self, self.server, self.config);
|
||||||
})
|
})
|
||||||
|
.catch(function (err) {
|
||||||
|
self.server.log('fatal', err);
|
||||||
|
self.emit('error', err);
|
||||||
|
|
||||||
|
return self.close()
|
||||||
|
.then(function () {
|
||||||
|
// retrow once server is closed
|
||||||
|
throw err;
|
||||||
|
});
|
||||||
|
})
|
||||||
.return(undefined);
|
.return(undefined);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,34 +84,24 @@ module.exports = class KbnServer extends EventEmitter {
|
||||||
*/
|
*/
|
||||||
listen() {
|
listen() {
|
||||||
let self = this;
|
let self = this;
|
||||||
let server = self.server;
|
|
||||||
let start = _.ary(promify(server.start, server), 0);
|
|
||||||
|
|
||||||
return self.ready()
|
return self.ready()
|
||||||
.then(function () {
|
.then(function () {
|
||||||
return self.mixin(start, require('./pid'));
|
return self.mixin(
|
||||||
})
|
|
||||||
.then(
|
|
||||||
function () {
|
function () {
|
||||||
server.log(['listening', 'info'], 'Server running at ' + server.info.uri);
|
return fromNode(_.bindKey(self.server, 'start'));
|
||||||
self.emit('listening');
|
|
||||||
return server;
|
|
||||||
},
|
},
|
||||||
function (err) {
|
require('./pid')
|
||||||
server.log('fatal', err);
|
|
||||||
self.emit('error', err);
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
|
})
|
||||||
|
.then(function () {
|
||||||
|
self.server.log(['listening', 'info'], 'Server running at ' + self.server.info.uri);
|
||||||
|
self.emit('listening');
|
||||||
|
return self.server;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
close() {
|
close() {
|
||||||
let self = this;
|
return fromNode(_.bindKey(this.server, 'stop'));
|
||||||
|
|
||||||
return fromNode(function (cb) {
|
|
||||||
self.server.stop(cb);
|
|
||||||
})
|
|
||||||
.then(function () {
|
|
||||||
return _.get(self, 'optimizer.disable', _.noop)();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue