add blockchain task
This commit is contained in:
parent
f975d22994
commit
201a31b54e
|
@ -0,0 +1,71 @@
|
||||||
|
module.exports = (grunt) ->
|
||||||
|
readYaml = require('read-yaml')
|
||||||
|
require('shelljs/global')
|
||||||
|
sh = require('execSync')
|
||||||
|
|
||||||
|
grunt.registerTask "blockchain", "deploy ethereum node", (env_) =>
|
||||||
|
env = env_ || "development"
|
||||||
|
try
|
||||||
|
blockchainConfig = readYaml.sync("config/blockchain.yml")
|
||||||
|
catch exception
|
||||||
|
grunt.log.writeln("==== error reading config/blockchain.yml")
|
||||||
|
grunt.log.writeln(exception)
|
||||||
|
|
||||||
|
rpcHost = blockchainConfig[env].rpc_host
|
||||||
|
rpcPort = blockchainConfig[env].rpc_port
|
||||||
|
rpcWhitelist = blockchainConfig[env].rpc_whitelist
|
||||||
|
|
||||||
|
minerthreads = blockchainConfig[env].minerthreads
|
||||||
|
datadir = blockchainConfig[env].datadir
|
||||||
|
networkId = blockchainConfig[env].network_id || Math.floor(((Math.random()*100000)+1000))
|
||||||
|
port = blockchainConfig[env].port || "30303"
|
||||||
|
console = blockchainConfig[env].console || false
|
||||||
|
mine_when_needed = blockchainConfig[env].mine_when_needed || false
|
||||||
|
|
||||||
|
account = blockchainConfig[env].account
|
||||||
|
address = account.address
|
||||||
|
|
||||||
|
cmd = "geth "
|
||||||
|
unless datadir is "default"
|
||||||
|
cmd += "--datadir=\"#{datadir}\" "
|
||||||
|
cmd += "--logfile=\"#{datadir}.log\" "
|
||||||
|
cmd += "--port #{port} "
|
||||||
|
cmd += "--rpc "
|
||||||
|
cmd += "--rpcport #{rpcPort} "
|
||||||
|
cmd += "--networkid #{networkId} "
|
||||||
|
cmd += "--rpccorsdomain \"#{rpcWhitelist}\" "
|
||||||
|
unless minerthreads is undefined
|
||||||
|
cmd += "--minerthreads \"#{minerthreads}\" "
|
||||||
|
cmd += "--mine "
|
||||||
|
|
||||||
|
if account.password isnt undefined
|
||||||
|
cmd += "--password #{account.password} "
|
||||||
|
|
||||||
|
if account.init
|
||||||
|
grunt.log.writeln("=== initializating account")
|
||||||
|
|
||||||
|
result = exec(cmd + "account list")
|
||||||
|
grunt.log.writeln("running: #{cmd} account list")
|
||||||
|
grunt.log.writeln("=== output is #{result.output}")
|
||||||
|
if result.output.indexOf("Fatal") < 0
|
||||||
|
grunt.log.writeln("=== already initialized")
|
||||||
|
address = result.output.match(/{(\w+)}/)[1]
|
||||||
|
else
|
||||||
|
grunt.log.writeln("running: #{cmd} account new")
|
||||||
|
output = sh.exec(cmd + " account new")
|
||||||
|
address = output.stdout.match(/{(\w+)}/)[1]
|
||||||
|
|
||||||
|
if address isnt undefined
|
||||||
|
cmd += "--unlock #{address} "
|
||||||
|
|
||||||
|
if console
|
||||||
|
cmd += "console"
|
||||||
|
|
||||||
|
if mine_when_needed
|
||||||
|
cmd += "js node_modules/embark-framework/js/mine.js"
|
||||||
|
|
||||||
|
grunt.log.writeln("running: #{cmd}")
|
||||||
|
grunt.log.writeln("=== running geth")
|
||||||
|
#sh.run(cmd)
|
||||||
|
exec(cmd)
|
||||||
|
|
Loading…
Reference in New Issue