From 8e2cb12654edeea41a497e4915e0f5c2a832cdea Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Wed, 8 Aug 2018 15:05:22 -0400 Subject: [PATCH 1/4] move cmd to cmd folder --- bin/embark | 2 +- {lib => cmd-ui}/cmd.js | 4 ++-- test/cmd.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) rename {lib => cmd-ui}/cmd.js (99%) diff --git a/bin/embark b/bin/embark index 6e015edb0..303b96b42 100755 --- a/bin/embark +++ b/bin/embark @@ -9,6 +9,6 @@ try { } } -var Cmd = require('../lib/cmd'); +var Cmd = require('../cmd-ui/cmd'); var cli = new Cmd(); cli.process(process.argv); diff --git a/lib/cmd.js b/cmd-ui/cmd.js similarity index 99% rename from lib/cmd.js rename to cmd-ui/cmd.js index b75448262..e02b42310 100644 --- a/lib/cmd.js +++ b/cmd-ui/cmd.js @@ -1,6 +1,6 @@ const program = require('commander'); const Embark = require('../lib/index'); -const i18n = require('./core/i18n/i18n.js'); +const i18n = require('../lib/core/i18n/i18n.js'); let embark = new Embark; class Cmd { @@ -288,7 +288,7 @@ class Cmd { program .action(function (cmd) { console.log((__('unknown command') + ' "%s"').red, cmd); - let utils = require('./utils/utils.js'); + let utils = require('../lib/utils/utils.js'); let dictionary = ['new', 'demo', 'build', 'run', 'blockchain', 'simulator', 'test', 'upload', 'version']; let suggestion = utils.proposeAlternative(cmd, dictionary); if (suggestion) { diff --git a/test/cmd.js b/test/cmd.js index 45e99ebcd..1b0e193e9 100644 --- a/test/cmd.js +++ b/test/cmd.js @@ -1,5 +1,5 @@ let Embark = require('../lib/index'); -let Cmd = require('../lib/cmd'); +let Cmd = require('../cmd-ui/cmd'); // Function to send a line to stdin function sendLine(line) { @@ -49,4 +49,4 @@ describe('embark.Cmd', function () { done(); }); }); -}); \ No newline at end of file +}); From 89228850f5f8b4820755fd78066a5091550a60ba Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Wed, 8 Aug 2018 18:07:10 -0400 Subject: [PATCH 2/4] move cmd controller to cmd-ui --- cmd-ui/cmd.js | 4 +- cmd-ui/cmd_controller.js | 464 +++++++++++++++++++++++++++++++++++++++ lib/index.js | 437 ------------------------------------ 3 files changed, 466 insertions(+), 439 deletions(-) create mode 100644 cmd-ui/cmd_controller.js diff --git a/cmd-ui/cmd.js b/cmd-ui/cmd.js index e02b42310..383f3da53 100644 --- a/cmd-ui/cmd.js +++ b/cmd-ui/cmd.js @@ -1,7 +1,7 @@ const program = require('commander'); -const Embark = require('../lib/index'); +const EmbarkController = require('./cmd_controller.js'); const i18n = require('../lib/core/i18n/i18n.js'); -let embark = new Embark; +let embark = new EmbarkController; class Cmd { constructor() { diff --git a/cmd-ui/cmd_controller.js b/cmd-ui/cmd_controller.js new file mode 100644 index 000000000..2defd4c3c --- /dev/null +++ b/cmd-ui/cmd_controller.js @@ -0,0 +1,464 @@ +let async = require('async'); +const constants = require('../lib/constants'); + +require('colors'); + +// TODO: can this moved somewhere else? (e.g webpackProcess.js) +// Override process.chdir so that we have a partial-implementation PWD for Windows +const realChdir = process.chdir; +process.chdir = (...args) => { + if (!process.env.PWD) { + process.env.PWD = process.cwd(); + } + realChdir(...args); +}; + +let version = require('../package.json').version; + +class EmbarkController { + + constructor(options) { + this.version = version; + this.options = options || {}; + } + + initConfig(env, options) { + let Events = require('../core/events.js'); + let Logger = require('../core/logger.js'); + let Config = require('../core/config.js'); + + this.events = new Events(); + this.logger = new Logger({logLevel: 'debug', events: this.events}); + + this.config = new Config({env: env, logger: this.logger, events: this.events, context: this.context}); + this.config.loadConfigFiles(options); + this.plugins = this.config.plugins; + } + + blockchain(env, client) { + this.context = [constants.contexts.blockchain]; + return require('../lib/modules/blockchain_process/blockchain.js')(this.config.blockchainConfig, client, env).run(); + } + + simulator(options) { + this.context = options.context || [constants.contexts.simulator, constants.contexts.blockchain]; + let Simulator = require('../lib/modules/blockchain_process/simulator.js'); + let simulator = new Simulator({ + blockchainConfig: this.config.blockchainConfig, + logger: this.logger + }); + simulator.run(options); + } + + generateTemplate(templateName, destinationFolder, name, url) { + this.context = [constants.contexts.templateGeneration]; + let TemplateGenerator = require('../lib/utils/template_generator.js'); + let templateGenerator = new TemplateGenerator(templateName); + + if (url) { + return templateGenerator.downloadAndGenerate(url, destinationFolder, name); + } + templateGenerator.generate(destinationFolder, name); + } + + run(options) { + let self = this; + self.context = options.context || [constants.contexts.run, constants.contexts.build]; + let Dashboard = require('../lib/dashboard/dashboard.js'); + + let webServerConfig = { + enabled: options.runWebserver + }; + + if (options.serverHost) { + webServerConfig.host = options.serverHost; + } + if (options.serverPort) { + webServerConfig.port = options.serverPort; + } + + const Engine = require('../lib/core/engine.js'); + const engine = new Engine({ + env: options.env, + client: options.client, + locale: options.locale, + version: this.version, + embarkConfig: options.embarkConfig || 'embark.json', + logFile: options.logFile, + logLevel: options.logLevel, + context: self.context, + useDashboard: options.useDashboard, + webServerConfig: webServerConfig + }); + engine.init(); + + if (!options.useDashboard) { + engine.logger.info('========================'.bold.green); + engine.logger.info((__('Welcome to Embark') + ' ' + this.version).yellow.bold); + engine.logger.info('========================'.bold.green); + } + + async.parallel([ + function startDashboard(callback) { + if (!options.useDashboard) { + return callback(); + } + + let dashboard = new Dashboard({ + events: engine.events, + logger: engine.logger, + plugins: engine.plugins, + version: self.version, + env: engine.env + }); + dashboard.start(function () { + engine.logger.info(__('dashboard start')); + callback(); + }); + }, + function (callback) { + let pluginList = engine.plugins.listPlugins(); + if (pluginList.length > 0) { + engine.logger.info(__("loaded plugins") + ": " + pluginList.join(", ")); + } + + engine.startService("processManager"); + engine.startService("serviceMonitor"); + engine.startService("libraryManager"); + engine.startService("codeRunner"); + engine.startService("web3"); + engine.startService("pipeline"); + engine.startService("deployment"); + engine.startService("storage"); + engine.startService("codeGenerator"); + engine.startService("namingSystem"); + + engine.events.on('check:backOnline:Ethereum', function () { + engine.logger.info(__('Ethereum node detected') + '..'); + engine.config.reloadConfig(); + engine.events.request('deploy:contracts', function (err) { + if (err) { + return; + } + engine.logger.info(__('Deployment Done')); + }); + }); + + engine.events.on('outputDone', function () { + engine.logger.info((__("Looking for documentation? You can find it at") + " ").cyan + "http://embark.status.im/docs/".green.underline + ".".cyan); + engine.logger.info(__("Ready").underline); + engine.events.emit("status", __("Ready").green); + }); + + if (options.runWebserver) { + engine.startService("webServer", { + host: options.serverHost, + port: options.serverPort + }); + } + engine.startService("fileWatcher"); + callback(); + } + ], function (err, _result) { + if (err) { + engine.logger.error(err.message); + engine.logger.info(err.stack); + } else { + engine.events.emit('firstDeploymentDone'); + } + }); + } + + build(options) { + this.context = options.context || [constants.contexts.build]; + + const Engine = require('../lib/core/engine.js'); + const engine = new Engine({ + env: options.env, + client: options.client, + locale: options.locale, + version: this.version, + embarkConfig: 'embark.json', + interceptLogs: false, + logFile: options.logFile, + logLevel: options.logLevel, + events: options.events, + logger: options.logger, + config: options.config, + plugins: options.plugins, + context: this.context + }); + engine.init(); + + async.waterfall([ + function startServices(callback) { + let pluginList = engine.plugins.listPlugins(); + if (pluginList.length > 0) { + engine.logger.info(__("loaded plugins") + ": " + pluginList.join(", ")); + } + + engine.startService("processManager"); + engine.startService("libraryManager"); + engine.startService("codeRunner"); + engine.startService("web3"); + if (!options.onlyCompile) { + engine.startService("pipeline"); + } + engine.startService("deployment", {onlyCompile: options.onlyCompile}); + engine.startService("storage"); + engine.startService("codeGenerator"); + + callback(); + }, + function deploy(callback) { + engine.events.request('deploy:contracts', function (err) { + callback(err); + }); + }, + function waitForWriteFinish(callback) { + if (options.onlyCompile) { + engine.logger.info("Finished compiling".underline); + return callback(null, true); + } + engine.logger.info("Finished deploying".underline); + engine.events.on('outputDone', (err) => { + engine.logger.info(__("finished building").underline); + callback(err, true); + }); + } + ], function (err, canExit) { + if (err) { + engine.logger.error(err.message); + engine.logger.debug(err.stack); + } + + // TODO: this should be moved out and determined somewhere else + if (canExit || !engine.config.contractsConfig.afterDeploy || !engine.config.contractsConfig.afterDeploy.length) { + process.exit(); + } + engine.logger.info(__('Waiting for after deploy to finish...')); + engine.logger.info(__('You can exit with CTRL+C when after deploy completes')); + }); + } + + console(options) { + this.context = options.context || [constants.contexts.run, constants.contexts.console]; + const REPL = require('../lib/dashboard/repl.js'); + const Engine = require('../lib/core/engine.js'); + const engine = new Engine({ + env: options.env, + client: options.client, + locale: options.locale, + version: this.version, + embarkConfig: options.embarkConfig || 'embark.json', + logFile: options.logFile, + logLevel: options.logLevel, + context: this.context + }); + engine.init(); + async.waterfall([ + function startServices(callback) { + let pluginList = engine.plugins.listPlugins(); + if (pluginList.length > 0) { + engine.logger.info(__("loaded plugins") + ": " + pluginList.join(", ")); + } + + engine.startService("processManager"); + engine.startService("serviceMonitor"); + engine.startService("libraryManager"); + engine.startService("codeRunner"); + engine.startService("web3"); + engine.startService("pipeline"); + engine.startService("deployment", {onlyCompile: false}); + engine.startService("storage"); + engine.startService("codeGenerator"); + engine.startService("fileWatcher"); + + callback(); + }, + function deploy(callback) { + engine.events.request('deploy:contracts', function (err) { + callback(err); + }); + }, + function waitForWriteFinish(callback) { + engine.logger.info("Finished deploying".underline); + engine.events.once('outputDone', (err) => { + engine.logger.info(__("finished building").underline); + callback(err); + }); + }, + function startREPL(callback) { + let repl = new REPL({ + env: engine.env, + plugins: engine.plugins, + version: engine.version, + events: engine.events + }); + repl.start(callback); + } + ], function (err, _result) { + if (err) { + engine.logger.error(err.message); + engine.logger.info(err.stack); + } else { + engine.events.emit('firstDeploymentDone'); + } + }); + } + + graph(options) { + this.context = options.context || [constants.contexts.graph]; + options.onlyCompile = true; + + const Engine = require('../lib/core/engine.js'); + const engine = new Engine({ + env: options.env, + version: this.version, + embarkConfig: options.embarkConfig || 'embark.json', + logFile: options.logFile, + context: this.context + }); + engine.init(); + + async.waterfall([ + function (callback) { + let pluginList = engine.plugins.listPlugins(); + if (pluginList.length > 0) { + engine.logger.info(__("loaded plugins") + ": " + pluginList.join(", ")); + } + + engine.startService("processManager"); + engine.startService("serviceMonitor"); + engine.startService("libraryManager"); + engine.startService("pipeline"); + engine.startService("deployment", {onlyCompile: true}); + engine.startService("web3"); + engine.startService("codeGenerator"); + engine.startService("graph"); + + engine.events.request('deploy:contracts', callback); + } + ], (err) => { + if (err) { + engine.logger.error(err.message); + engine.logger.info(err.stack); + } else { + + engine.events.request("graph:create", options, () => { + engine.logger.info(__("Done. %s generated", "./diagram.svg").underline); + }); + } + process.exit(); + }); + + } + + reset() { + var fs = require('../lib/core/fs.js'); + fs.removeSync('./chains.json'); + fs.removeSync('.embark/'); + fs.removeSync('dist/'); + console.log(__("reset done!").green); + } + + upload(options) { + this.context = options.context || [constants.contexts.upload, constants.contexts.build]; + + const Engine = require('../lib/core/engine.js'); + const engine = new Engine({ + env: options.env, + client: options.client, + locale: options.locale, + version: this.version, + embarkConfig: 'embark.json', + interceptLogs: false, + logFile: options.logFile, + logLevel: options.logLevel, + events: options.events, + logger: options.logger, + config: options.config, + plugins: options.plugins, + context: this.context + }); + engine.init(); + + let platform = engine.config.storageConfig.upload.provider; + + async.waterfall([ + + function startServices(callback) { + + engine.startService("processManager"); + engine.startService("serviceMonitor"); + engine.startService("libraryManager"); + engine.startService("codeRunner"); + engine.startService("web3"); + engine.startService("pipeline"); + engine.startService("deployment"); + engine.startService("storage"); + engine.startService("codeGenerator"); + if(options.ensDomain) { + engine.startService("namingSystem"); + } + callback(); + }, + function listLoadedPlugin(callback) { + let pluginList = engine.plugins.listPlugins(); + if (pluginList.length > 0) { + engine.logger.info(__("loaded plugins") + ": " + pluginList.join(", ")); + } + callback(); + }, + function deploy(callback) { + engine.events.on('outputDone', function () { + engine.events.request("storage:upload", callback); + }); + engine.events.on('check:backOnline:Ethereum', function () { + engine.logger.info(__('Ethereum node detected') + '..'); + engine.config.reloadConfig(); + engine.events.request('deploy:contracts', function (err) { + if (err) { + return; + } + engine.logger.info(__('Deployment Done')); + }); + }); + }, + function associateToENS(hash, callback) { + if(!options.ensDomain) { + return callback(null, hash); + } + engine.events.request("storage:ens:associate", + {name: options.ensDomain, storageHash: hash}, (err) => { + if (err) { + return callback(err); + } + engine.logger.info(__('ENS association completed for {{hash}} at {{domain}}', {hash, domain: options.ensDomain})); + callback(); + }); + } + ], function (err) { + if (err) { + if (err.message) { + engine.logger.error(err.message); + return engine.logger.debug(err.stack); + } + engine.locale.error(err); + } else { + engine.logger.info((__("finished building DApp and deploying to") + " " + platform).underline); + } + + // needed due to child processes + process.exit(); + }); + } + + runTests(options) { + this.context = [constants.contexts.test]; + let RunTests = require('../lib/tests/run_tests.js'); + RunTests.run(options); + } +} + +module.exports = EmbarkController; diff --git a/lib/index.js b/lib/index.js index a4fa2296e..81e48abf3 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,16 +1,3 @@ -let async = require('async'); -const constants = require('./constants'); - -require('colors'); - -// Override process.chdir so that we have a partial-implementation PWD for Windows -const realChdir = process.chdir; -process.chdir = (...args) => { - if (!process.env.PWD) { - process.env.PWD = process.cwd(); - } - realChdir(...args); -}; let version = require('../package.json').version; @@ -34,430 +21,6 @@ class Embark { this.plugins = this.config.plugins; } - blockchain(env, client) { - this.context = [constants.contexts.blockchain]; - return require('./modules/blockchain_process/blockchain.js')(this.config.blockchainConfig, client, env).run(); - } - - simulator(options) { - this.context = options.context || [constants.contexts.simulator, constants.contexts.blockchain]; - let Simulator = require('./modules/blockchain_process/simulator.js'); - let simulator = new Simulator({ - blockchainConfig: this.config.blockchainConfig, - logger: this.logger - }); - simulator.run(options); - } - - generateTemplate(templateName, destinationFolder, name, url) { - this.context = [constants.contexts.templateGeneration]; - let TemplateGenerator = require('./utils/template_generator.js'); - let templateGenerator = new TemplateGenerator(templateName); - - if (url) { - return templateGenerator.downloadAndGenerate(url, destinationFolder, name); - } - templateGenerator.generate(destinationFolder, name); - } - - run(options) { - let self = this; - self.context = options.context || [constants.contexts.run, constants.contexts.build]; - let Dashboard = require('./dashboard/dashboard.js'); - - let webServerConfig = { - enabled: options.runWebserver - }; - - if (options.serverHost) { - webServerConfig.host = options.serverHost; - } - if (options.serverPort) { - webServerConfig.port = options.serverPort; - } - - const Engine = require('./core/engine.js'); - const engine = new Engine({ - env: options.env, - client: options.client, - locale: options.locale, - version: this.version, - embarkConfig: options.embarkConfig || 'embark.json', - logFile: options.logFile, - logLevel: options.logLevel, - context: self.context, - useDashboard: options.useDashboard, - webServerConfig: webServerConfig - }); - engine.init(); - - if (!options.useDashboard) { - engine.logger.info('========================'.bold.green); - engine.logger.info((__('Welcome to Embark') + ' ' + this.version).yellow.bold); - engine.logger.info('========================'.bold.green); - } - - async.parallel([ - function startDashboard(callback) { - if (!options.useDashboard) { - return callback(); - } - - let dashboard = new Dashboard({ - events: engine.events, - logger: engine.logger, - plugins: engine.plugins, - version: self.version, - env: engine.env - }); - dashboard.start(function () { - engine.logger.info(__('dashboard start')); - callback(); - }); - }, - function (callback) { - let pluginList = engine.plugins.listPlugins(); - if (pluginList.length > 0) { - engine.logger.info(__("loaded plugins") + ": " + pluginList.join(", ")); - } - - engine.startService("processManager"); - engine.startService("serviceMonitor"); - engine.startService("libraryManager"); - engine.startService("codeRunner"); - engine.startService("web3"); - engine.startService("pipeline"); - engine.startService("deployment"); - engine.startService("storage"); - engine.startService("codeGenerator"); - engine.startService("namingSystem"); - - engine.events.on('check:backOnline:Ethereum', function () { - engine.logger.info(__('Ethereum node detected') + '..'); - engine.config.reloadConfig(); - engine.events.request('deploy:contracts', function (err) { - if (err) { - return; - } - engine.logger.info(__('Deployment Done')); - }); - }); - - engine.events.on('outputDone', function () { - engine.logger.info((__("Looking for documentation? You can find it at") + " ").cyan + "http://embark.status.im/docs/".green.underline + ".".cyan); - engine.logger.info(__("Ready").underline); - engine.events.emit("status", __("Ready").green); - }); - - if (options.runWebserver) { - engine.startService("webServer", { - host: options.serverHost, - port: options.serverPort - }); - } - engine.startService("fileWatcher"); - callback(); - } - ], function (err, _result) { - if (err) { - engine.logger.error(err.message); - engine.logger.info(err.stack); - } else { - engine.events.emit('firstDeploymentDone'); - } - }); - } - - build(options) { - this.context = options.context || [constants.contexts.build]; - - const Engine = require('./core/engine.js'); - const engine = new Engine({ - env: options.env, - client: options.client, - locale: options.locale, - version: this.version, - embarkConfig: 'embark.json', - interceptLogs: false, - logFile: options.logFile, - logLevel: options.logLevel, - events: options.events, - logger: options.logger, - config: options.config, - plugins: options.plugins, - context: this.context - }); - engine.init(); - - async.waterfall([ - function startServices(callback) { - let pluginList = engine.plugins.listPlugins(); - if (pluginList.length > 0) { - engine.logger.info(__("loaded plugins") + ": " + pluginList.join(", ")); - } - - engine.startService("processManager"); - engine.startService("libraryManager"); - engine.startService("codeRunner"); - engine.startService("web3"); - if (!options.onlyCompile) { - engine.startService("pipeline"); - } - engine.startService("deployment", {onlyCompile: options.onlyCompile}); - engine.startService("storage"); - engine.startService("codeGenerator"); - - callback(); - }, - function deploy(callback) { - engine.events.request('deploy:contracts', function (err) { - callback(err); - }); - }, - function waitForWriteFinish(callback) { - if (options.onlyCompile) { - engine.logger.info("Finished compiling".underline); - return callback(null, true); - } - engine.logger.info("Finished deploying".underline); - engine.events.on('outputDone', (err) => { - engine.logger.info(__("finished building").underline); - callback(err, true); - }); - } - ], function (err, canExit) { - if (err) { - engine.logger.error(err.message); - engine.logger.debug(err.stack); - } - - // TODO: this should be moved out and determined somewhere else - if (canExit || !engine.config.contractsConfig.afterDeploy || !engine.config.contractsConfig.afterDeploy.length) { - process.exit(); - } - engine.logger.info(__('Waiting for after deploy to finish...')); - engine.logger.info(__('You can exit with CTRL+C when after deploy completes')); - }); - } - - console(options) { - this.context = options.context || [constants.contexts.run, constants.contexts.console]; - const REPL = require('./dashboard/repl.js'); - const Engine = require('./core/engine.js'); - const engine = new Engine({ - env: options.env, - client: options.client, - locale: options.locale, - version: this.version, - embarkConfig: options.embarkConfig || 'embark.json', - logFile: options.logFile, - logLevel: options.logLevel, - context: this.context - }); - engine.init(); - async.waterfall([ - function startServices(callback) { - let pluginList = engine.plugins.listPlugins(); - if (pluginList.length > 0) { - engine.logger.info(__("loaded plugins") + ": " + pluginList.join(", ")); - } - - engine.startService("processManager"); - engine.startService("serviceMonitor"); - engine.startService("libraryManager"); - engine.startService("codeRunner"); - engine.startService("web3"); - engine.startService("pipeline"); - engine.startService("deployment", {onlyCompile: false}); - engine.startService("storage"); - engine.startService("codeGenerator"); - engine.startService("fileWatcher"); - - callback(); - }, - function deploy(callback) { - engine.events.request('deploy:contracts', function (err) { - callback(err); - }); - }, - function waitForWriteFinish(callback) { - engine.logger.info("Finished deploying".underline); - engine.events.once('outputDone', (err) => { - engine.logger.info(__("finished building").underline); - callback(err); - }); - }, - function startREPL(callback) { - let repl = new REPL({ - env: engine.env, - plugins: engine.plugins, - version: engine.version, - events: engine.events - }); - repl.start(callback); - } - ], function (err, _result) { - if (err) { - engine.logger.error(err.message); - engine.logger.info(err.stack); - } else { - engine.events.emit('firstDeploymentDone'); - } - }); - } - - graph(options) { - this.context = options.context || [constants.contexts.graph]; - options.onlyCompile = true; - - const Engine = require('./core/engine.js'); - const engine = new Engine({ - env: options.env, - version: this.version, - embarkConfig: options.embarkConfig || 'embark.json', - logFile: options.logFile, - context: this.context - }); - engine.init(); - - async.waterfall([ - function (callback) { - let pluginList = engine.plugins.listPlugins(); - if (pluginList.length > 0) { - engine.logger.info(__("loaded plugins") + ": " + pluginList.join(", ")); - } - - engine.startService("processManager"); - engine.startService("serviceMonitor"); - engine.startService("libraryManager"); - engine.startService("pipeline"); - engine.startService("deployment", {onlyCompile: true}); - engine.startService("web3"); - engine.startService("codeGenerator"); - engine.startService("graph"); - - engine.events.request('deploy:contracts', callback); - } - ], (err) => { - if (err) { - engine.logger.error(err.message); - engine.logger.info(err.stack); - } else { - - engine.events.request("graph:create", options, () => { - engine.logger.info(__("Done. %s generated", "./diagram.svg").underline); - }); - } - process.exit(); - }); - - } - - reset() { - var fs = require('./core/fs.js'); - fs.removeSync('./chains.json'); - fs.removeSync('.embark/'); - fs.removeSync('dist/'); - console.log(__("reset done!").green); - } - - upload(options) { - this.context = options.context || [constants.contexts.upload, constants.contexts.build]; - - const Engine = require('./core/engine.js'); - const engine = new Engine({ - env: options.env, - client: options.client, - locale: options.locale, - version: this.version, - embarkConfig: 'embark.json', - interceptLogs: false, - logFile: options.logFile, - logLevel: options.logLevel, - events: options.events, - logger: options.logger, - config: options.config, - plugins: options.plugins, - context: this.context - }); - engine.init(); - - let platform = engine.config.storageConfig.upload.provider; - - async.waterfall([ - - function startServices(callback) { - - engine.startService("processManager"); - engine.startService("serviceMonitor"); - engine.startService("libraryManager"); - engine.startService("codeRunner"); - engine.startService("web3"); - engine.startService("pipeline"); - engine.startService("deployment"); - engine.startService("storage"); - engine.startService("codeGenerator"); - if(options.ensDomain) { - engine.startService("namingSystem"); - } - callback(); - }, - function listLoadedPlugin(callback) { - let pluginList = engine.plugins.listPlugins(); - if (pluginList.length > 0) { - engine.logger.info(__("loaded plugins") + ": " + pluginList.join(", ")); - } - callback(); - }, - function deploy(callback) { - engine.events.on('outputDone', function () { - engine.events.request("storage:upload", callback); - }); - engine.events.on('check:backOnline:Ethereum', function () { - engine.logger.info(__('Ethereum node detected') + '..'); - engine.config.reloadConfig(); - engine.events.request('deploy:contracts', function (err) { - if (err) { - return; - } - engine.logger.info(__('Deployment Done')); - }); - }); - }, - function associateToENS(hash, callback) { - if(!options.ensDomain) { - return callback(null, hash); - } - engine.events.request("storage:ens:associate", - {name: options.ensDomain, storageHash: hash}, (err) => { - if (err) { - return callback(err); - } - engine.logger.info(__('ENS association completed for {{hash}} at {{domain}}', {hash, domain: options.ensDomain})); - callback(); - }); - } - ], function (err) { - if (err) { - if (err.message) { - engine.logger.error(err.message); - return engine.logger.debug(err.stack); - } - engine.locale.error(err); - } else { - engine.logger.info((__("finished building DApp and deploying to") + " " + platform).underline); - } - - // needed due to child processes - process.exit(); - }); - } - - runTests(options) { - this.context = [constants.contexts.test]; - let RunTests = require('./tests/run_tests.js'); - RunTests.run(options); - } } module.exports = Embark; From 734a75ce4e77793d0dc0f4b86dff5a6bcb98890a Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Wed, 8 Aug 2018 18:15:25 -0400 Subject: [PATCH 3/4] update tests --- cmd-ui/cmd_controller.js | 2 +- {lib => cmd-ui}/dashboard/command_history.js | 0 {lib => cmd-ui}/dashboard/console.js | 2 +- {lib => cmd-ui}/dashboard/dashboard.js | 0 {lib => cmd-ui}/dashboard/monitor.js | 0 {lib => cmd-ui}/dashboard/repl.js | 0 test/console.js | 2 +- 7 files changed, 3 insertions(+), 3 deletions(-) rename {lib => cmd-ui}/dashboard/command_history.js (100%) rename {lib => cmd-ui}/dashboard/console.js (97%) rename {lib => cmd-ui}/dashboard/dashboard.js (100%) rename {lib => cmd-ui}/dashboard/monitor.js (100%) rename {lib => cmd-ui}/dashboard/repl.js (100%) diff --git a/cmd-ui/cmd_controller.js b/cmd-ui/cmd_controller.js index 2defd4c3c..7dc8d628d 100644 --- a/cmd-ui/cmd_controller.js +++ b/cmd-ui/cmd_controller.js @@ -64,7 +64,7 @@ class EmbarkController { run(options) { let self = this; self.context = options.context || [constants.contexts.run, constants.contexts.build]; - let Dashboard = require('../lib/dashboard/dashboard.js'); + let Dashboard = require('./dashboard/dashboard.js'); let webServerConfig = { enabled: options.runWebserver diff --git a/lib/dashboard/command_history.js b/cmd-ui/dashboard/command_history.js similarity index 100% rename from lib/dashboard/command_history.js rename to cmd-ui/dashboard/command_history.js diff --git a/lib/dashboard/console.js b/cmd-ui/dashboard/console.js similarity index 97% rename from lib/dashboard/console.js rename to cmd-ui/dashboard/console.js index c77d2b2fa..805ef9657 100644 --- a/lib/dashboard/console.js +++ b/cmd-ui/dashboard/console.js @@ -1,4 +1,4 @@ -let utils = require('../utils/utils.js'); +let utils = require('../../lib/utils/utils.js'); class Console { constructor(options) { diff --git a/lib/dashboard/dashboard.js b/cmd-ui/dashboard/dashboard.js similarity index 100% rename from lib/dashboard/dashboard.js rename to cmd-ui/dashboard/dashboard.js diff --git a/lib/dashboard/monitor.js b/cmd-ui/dashboard/monitor.js similarity index 100% rename from lib/dashboard/monitor.js rename to cmd-ui/dashboard/monitor.js diff --git a/lib/dashboard/repl.js b/cmd-ui/dashboard/repl.js similarity index 100% rename from lib/dashboard/repl.js rename to cmd-ui/dashboard/repl.js diff --git a/test/console.js b/test/console.js index 71b6998e5..841961378 100644 --- a/test/console.js +++ b/test/console.js @@ -1,5 +1,5 @@ /*globals describe, it*/ -let Console = require('../lib/dashboard/console.js'); +let Console = require('../cmd-ui/dashboard/console.js'); let Plugins = require('../lib/core/plugins.js'); let assert = require('assert'); let version = require('../package.json').version; From 81bbf838c8691eead38db9d1f75536cf3214bb34 Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Thu, 9 Aug 2018 08:30:58 -0400 Subject: [PATCH 4/4] rename to cmd --- bin/embark | 2 +- {cmd-ui => cmd}/cmd.js | 0 {cmd-ui => cmd}/cmd_controller.js | 0 {cmd-ui => cmd}/dashboard/command_history.js | 0 {cmd-ui => cmd}/dashboard/console.js | 0 {cmd-ui => cmd}/dashboard/dashboard.js | 0 {cmd-ui => cmd}/dashboard/monitor.js | 0 {cmd-ui => cmd}/dashboard/repl.js | 0 test/cmd.js | 2 +- test/console.js | 2 +- 10 files changed, 3 insertions(+), 3 deletions(-) rename {cmd-ui => cmd}/cmd.js (100%) rename {cmd-ui => cmd}/cmd_controller.js (100%) rename {cmd-ui => cmd}/dashboard/command_history.js (100%) rename {cmd-ui => cmd}/dashboard/console.js (100%) rename {cmd-ui => cmd}/dashboard/dashboard.js (100%) rename {cmd-ui => cmd}/dashboard/monitor.js (100%) rename {cmd-ui => cmd}/dashboard/repl.js (100%) diff --git a/bin/embark b/bin/embark index 303b96b42..a824c98ba 100755 --- a/bin/embark +++ b/bin/embark @@ -9,6 +9,6 @@ try { } } -var Cmd = require('../cmd-ui/cmd'); +var Cmd = require('../cmd/cmd'); var cli = new Cmd(); cli.process(process.argv); diff --git a/cmd-ui/cmd.js b/cmd/cmd.js similarity index 100% rename from cmd-ui/cmd.js rename to cmd/cmd.js diff --git a/cmd-ui/cmd_controller.js b/cmd/cmd_controller.js similarity index 100% rename from cmd-ui/cmd_controller.js rename to cmd/cmd_controller.js diff --git a/cmd-ui/dashboard/command_history.js b/cmd/dashboard/command_history.js similarity index 100% rename from cmd-ui/dashboard/command_history.js rename to cmd/dashboard/command_history.js diff --git a/cmd-ui/dashboard/console.js b/cmd/dashboard/console.js similarity index 100% rename from cmd-ui/dashboard/console.js rename to cmd/dashboard/console.js diff --git a/cmd-ui/dashboard/dashboard.js b/cmd/dashboard/dashboard.js similarity index 100% rename from cmd-ui/dashboard/dashboard.js rename to cmd/dashboard/dashboard.js diff --git a/cmd-ui/dashboard/monitor.js b/cmd/dashboard/monitor.js similarity index 100% rename from cmd-ui/dashboard/monitor.js rename to cmd/dashboard/monitor.js diff --git a/cmd-ui/dashboard/repl.js b/cmd/dashboard/repl.js similarity index 100% rename from cmd-ui/dashboard/repl.js rename to cmd/dashboard/repl.js diff --git a/test/cmd.js b/test/cmd.js index 1b0e193e9..767c82b7c 100644 --- a/test/cmd.js +++ b/test/cmd.js @@ -1,5 +1,5 @@ let Embark = require('../lib/index'); -let Cmd = require('../cmd-ui/cmd'); +let Cmd = require('../cmd/cmd'); // Function to send a line to stdin function sendLine(line) { diff --git a/test/console.js b/test/console.js index 841961378..eca2814e1 100644 --- a/test/console.js +++ b/test/console.js @@ -1,5 +1,5 @@ /*globals describe, it*/ -let Console = require('../cmd-ui/dashboard/console.js'); +let Console = require('../cmd/dashboard/console.js'); let Plugins = require('../lib/core/plugins.js'); let assert = require('assert'); let version = require('../package.json').version;