diff --git a/lib/cmds/simulator.js b/lib/cmds/simulator.js index 638020e39..511bd2bf5 100644 --- a/lib/cmds/simulator.js +++ b/lib/cmds/simulator.js @@ -25,7 +25,9 @@ class Simulator { let port = (options.port || this.blockchainConfig.rpcPort || 8545); cmds.push("-p " + (port + (useProxy ? constants.blockchain.servicePortOnProxy : 0))); - cmds.push("-h " + host); + if (!ganache) { + cmds.push("-h " + host); + } cmds.push("-a " + (options.numAccounts || 10)); cmds.push("-e " + (options.defaultBalance || 100)); cmds.push("-l " + (options.gasLimit || 8000000)); @@ -43,7 +45,7 @@ class Simulator { } const program = ganache ? 'ganache-cli' : 'testrpc'; - + console.log(`running: ${program} ${cmds.join(' ')}`); shelljs.exec(`${program} ${cmds.join(' ')}`, {async : true}); if(useProxy){ diff --git a/lib/index.js b/lib/index.js index 858292ca0..e32d12389 100644 --- a/lib/index.js +++ b/lib/index.js @@ -194,7 +194,9 @@ class Embark { engine.startService("libraryManager"); engine.startService("codeRunner"); engine.startService("web3"); - engine.startService("pipeline"); + if (!options.onlyCompile) { + engine.startService("pipeline"); + } engine.startService("deployment", {onlyCompile: options.onlyCompile}); engine.startService("storage"); engine.startService("codeGenerator"); @@ -206,21 +208,30 @@ class Embark { }); }, function waitForWriteFinish(callback) { + if (options.onlyCompile) { + engine.logger.info("Finished compiling".underline); + return callback(null, true); + } engine.logger.info("Finished deploying".underline); - // Necessary log for simple projects. This event is trigger to soon because there is no file - // Also, not exiting straight after the deploy leaves time for async afterDeploys to finish - engine.logger.info("If you have no files to build, you can exit now with CTRL+C"); - engine.events.on('outputDone', callback); + if (!engine.config.assetFiles || !Object.keys(engine.config.assetFiles).length) { + return callback(); + } + engine.events.on('outputDone', (err) => { + engine.logger.info(__("finished building").underline); + callback(err, true); + }); } - ], function (err, _result) { + ], function (err, canExit) { if (err) { engine.logger.error(err.message); engine.logger.debug(err.stack); - } else { - engine.logger.info(__("finished building").underline); } - // needed due to child processes - process.exit(); + + 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')); }); }