11let async = require ( 'async' ) ;
22const constants = require ( './constants' ) ;
3+ const _ = require ( 'underscore' ) ;
34// require("./utils/debug_util.js")(__filename, async);
45
56require ( 'colors' ) ;
@@ -45,11 +46,11 @@ class Embark {
4546
4647 if ( blockchainConfig . rpcCorsDomain === 'auto' ) {
4748 if ( webServerConfig ) blockchainConfig . rpcCorsDomain = `http://${ webServerConfig . host } :${ webServerConfig . port } ` ;
48- if ( storageConfig ) blockchainConfig . rpcCorsDomain += `${ blockchainConfig . rpcCorsDomain . length ? ',' : '' } http ://${ storageConfig . host } :${ storageConfig . port } ` ;
49+ if ( storageConfig ) blockchainConfig . rpcCorsDomain += `${ blockchainConfig . rpcCorsDomain . length ? ',' : '' } ${ storageConfig . protocol } ://${ storageConfig . host } :${ storageConfig . port } ` ;
4950 }
5051 if ( blockchainConfig . wsOrigins === 'auto' ) {
5152 if ( webServerConfig ) blockchainConfig . wsOrigins = `http://${ webServerConfig . host } :${ webServerConfig . port } ` ;
52- if ( storageConfig ) blockchainConfig . wsOrigins += `${ blockchainConfig . wsOrigins . length ? ',' : '' } http ://${ storageConfig . host } :${ storageConfig . port } ` ;
53+ if ( storageConfig ) blockchainConfig . wsOrigins += `${ blockchainConfig . wsOrigins . length ? ',' : '' } ${ storageConfig . protocol } ://${ storageConfig . host } :${ storageConfig . port } ` ;
5354 }
5455 return require ( './cmds/blockchain/blockchain.js' ) ( blockchainConfig , client , env ) . run ( ) ;
5556 }
@@ -121,7 +122,7 @@ class Embark {
121122 engine . startService ( "pipeline" ) ;
122123 engine . startService ( "codeGenerator" ) ;
123124 engine . startService ( "deployment" ) ;
124- engine . startService ( "ipfs" ) ;
125+ engine . startService ( engine . config . storageConfig . provider , { bzz : engine . web3 . bzz } ) ;
125126
126127 engine . events . on ( 'check:backOnline:Ethereum' , function ( ) {
127128 engine . logger . info ( 'Ethereum node detected..' ) ;
@@ -134,6 +135,7 @@ class Embark {
134135 engine . events . on ( 'outputDone' , function ( ) {
135136 engine . logger . info ( "Looking for documentation? You can find it at " . cyan + "http://embark.readthedocs.io/" . green . underline + "." . cyan ) ;
136137 engine . logger . info ( "Ready" . underline ) ;
138+ engine . events . emit ( "status" , "Ready" . green ) ;
137139 } ) ;
138140
139141 engine . deployManager . deployContracts ( function ( err ) {
@@ -153,7 +155,6 @@ class Embark {
153155 engine . logger . info ( err . stack ) ;
154156 } else {
155157 engine . events . emit ( 'firstDeploymentDone' ) ;
156- engine . events . emit ( "status" , "Ready" . green ) ;
157158
158159 let size = windowSize . get ( ) ;
159160 if ( size . height < 40 || size . width < 118 ) {
@@ -194,6 +195,7 @@ class Embark {
194195 engine . startService ( "codeGenerator" ) ;
195196 engine . startService ( "deployment" ) ;
196197 engine . startService ( "ipfs" ) ;
198+ engine . startService ( "swarm" , { bzz : engine . web3 . bzz } ) ;
197199 callback ( ) ;
198200 } ,
199201 function deploy ( callback ) {
@@ -303,10 +305,28 @@ class Embark {
303305 engine . startService ( "pipeline" ) ;
304306 engine . startService ( "codeGenerator" ) ;
305307 engine . startService ( "deployment" ) ;
306- engine . startService ( "ipfs" ) ;
307- engine . startService ( "swarm" , { buildDir : 'dist/' , web3 : engine . web3 } ) ;
308+ engine . startService ( platform . toLowerCase ( ) , { bzz : engine . web3 . bzz } ) ;
309+ engine . startMonitor ( ) ;
308310 callback ( ) ;
309311 } ,
312+ function checkStorageService ( callback ) {
313+ let checkFn ;
314+ _ . find ( engine . servicesMonitor . checkList , ( value , key ) => {
315+ if ( key . toLowerCase ( ) === platform . toLowerCase ( ) ) {
316+ checkFn = value ;
317+ return true ;
318+ }
319+ } ) ;
320+ if ( ! checkFn || typeof checkFn . fn !== 'function' ) {
321+ return callback ( ) ;
322+ }
323+ checkFn . fn ( function ( serviceCheckResult ) {
324+ if ( ! serviceCheckResult . status || serviceCheckResult . status === 'off' ) {
325+ return callback ( { message : `Cannot upload: ${ platform } node is not running on http://${ engine . config . storageConfig . host } :${ engine . config . storageConfig . port } .` } ) ;
326+ }
327+ callback ( ) ;
328+ } ) ;
329+ } ,
310330 function setupStoragePlugin ( callback ) {
311331 let pluginList = engine . plugins . listPlugins ( ) ;
312332 if ( pluginList . length > 0 ) {
@@ -325,10 +345,9 @@ class Embark {
325345 }
326346 if ( ! cmdPlugin ) {
327347 engine . logger . info ( 'try "embark upload ipfs" or "embark upload swarm"' . green ) ;
328- callback ( { message : 'unknown platform: ' + platform } ) ;
329- } else {
330- callback ( ) ;
348+ return callback ( { message : 'unknown platform: ' + platform } ) ;
331349 }
350+ callback ( ) ;
332351 } ,
333352 function deploy ( callback ) {
334353 // 2. upload to storage (outputDone event triggered after webpack finished)
0 commit comments