mirror of https://github.com/embarklabs/embark.git
add webserver start/stop cmd
This commit is contained in:
parent
9efd29ec9e
commit
113bb25142
|
@ -182,6 +182,14 @@ class Engine {
|
||||||
return cb({name: devServer, status: 'on'});
|
return cb({name: devServer, status: 'on'});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
self.events.setCommandHandler('start-webserver', function() {
|
||||||
|
server.start();
|
||||||
|
});
|
||||||
|
|
||||||
|
self.events.setCommandHandler('stop-webserver', function() {
|
||||||
|
server.stop();
|
||||||
|
});
|
||||||
|
|
||||||
server.start(function () {
|
server.start(function () {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ let RunCode = require('../core/runCode.js');
|
||||||
|
|
||||||
class Console {
|
class Console {
|
||||||
constructor(options) {
|
constructor(options) {
|
||||||
|
this.events = options.events;
|
||||||
this.plugins = options.plugins;
|
this.plugins = options.plugins;
|
||||||
this.version = options.version;
|
this.version = options.version;
|
||||||
this.contractsConfig = options.contractsConfig;
|
this.contractsConfig = options.contractsConfig;
|
||||||
|
@ -42,6 +43,12 @@ class Console {
|
||||||
return text.join('\n');
|
return text.join('\n');
|
||||||
} else if (['quit', 'exit', 'sair', 'sortir'].indexOf(cmd) >= 0) {
|
} else if (['quit', 'exit', 'sair', 'sortir'].indexOf(cmd) >= 0) {
|
||||||
utils.exit();
|
utils.exit();
|
||||||
|
} else if (cmd === 'webserver start') {
|
||||||
|
this.events.request("start-webserver");
|
||||||
|
return "starting webserver...";
|
||||||
|
} else if (cmd === 'webserver stop') {
|
||||||
|
this.events.request("stop-webserver");
|
||||||
|
return "stopping webserver...";
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ let Console = require('./console.js');
|
||||||
class Dashboard {
|
class Dashboard {
|
||||||
constructor(options) {
|
constructor(options) {
|
||||||
this.logger = options.logger;
|
this.logger = options.logger;
|
||||||
|
this.events = options.events;
|
||||||
this.plugins = options.plugins;
|
this.plugins = options.plugins;
|
||||||
this.version = options.version;
|
this.version = options.version;
|
||||||
this.env = options.env;
|
this.env = options.env;
|
||||||
|
@ -18,7 +19,12 @@ class Dashboard {
|
||||||
|
|
||||||
async.waterfall([
|
async.waterfall([
|
||||||
function startConsole(callback) {
|
function startConsole(callback) {
|
||||||
console = new Console({plugins: self.plugins, version: self.version, contractsConfig: self.contractsConfig});
|
console = new Console({
|
||||||
|
events: self.events,
|
||||||
|
plugins: self.plugins,
|
||||||
|
version: self.version,
|
||||||
|
contractsConfig: self.contractsConfig
|
||||||
|
});
|
||||||
callback();
|
callback();
|
||||||
},
|
},
|
||||||
function startMonitor(callback) {
|
function startMonitor(callback) {
|
||||||
|
|
|
@ -71,6 +71,7 @@ class Embark {
|
||||||
}
|
}
|
||||||
|
|
||||||
let dashboard = new Dashboard({
|
let dashboard = new Dashboard({
|
||||||
|
events: engine.events,
|
||||||
logger: engine.logger,
|
logger: engine.logger,
|
||||||
plugins: engine.plugins,
|
plugins: engine.plugins,
|
||||||
version: self.version,
|
version: self.version,
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
let finalhandler = require('finalhandler');
|
let finalhandler = require('finalhandler');
|
||||||
let http = require('http');
|
let http = require('http');
|
||||||
let serveStatic = require('serve-static');
|
let serveStatic = require('serve-static');
|
||||||
|
require('http-shutdown').extend();
|
||||||
|
|
||||||
class Server {
|
class Server {
|
||||||
constructor(options) {
|
constructor(options) {
|
||||||
|
@ -13,13 +14,23 @@ class Server {
|
||||||
start(callback) {
|
start(callback) {
|
||||||
let serve = serveStatic(this.dist, {'index': ['index.html', 'index.htm']});
|
let serve = serveStatic(this.dist, {'index': ['index.html', 'index.htm']});
|
||||||
|
|
||||||
let server = http.createServer(function onRequest(req, res) {
|
this.server = http.createServer(function onRequest(req, res) {
|
||||||
serve(req, res, finalhandler(req, res));
|
serve(req, res, finalhandler(req, res));
|
||||||
});
|
}).withShutdown();
|
||||||
|
|
||||||
this.logger.info("webserver available at " + ("http://" + this.hostname + ":" + this.port).bold.underline.green);
|
this.logger.info("webserver available at " + ("http://" + this.hostname + ":" + this.port).bold.underline.green);
|
||||||
server.listen(this.port, this.hostname);
|
this.server.listen(this.port, this.hostname);
|
||||||
callback();
|
if (callback) {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stop(callback) {
|
||||||
|
this.server.shutdown(function() {
|
||||||
|
if (callback) {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
"follow-redirects": "^1.2.4",
|
"follow-redirects": "^1.2.4",
|
||||||
"fs-extra": "^2.0.0",
|
"fs-extra": "^2.0.0",
|
||||||
"globule": "^1.1.0",
|
"globule": "^1.1.0",
|
||||||
|
"http-shutdown": "^1.2.0",
|
||||||
"ipfs-api": "17.2.4",
|
"ipfs-api": "17.2.4",
|
||||||
"merge": "^1.2.0",
|
"merge": "^1.2.0",
|
||||||
"mocha": "^2.2.5",
|
"mocha": "^2.2.5",
|
||||||
|
|
Loading…
Reference in New Issue