dc-protocol
Version:
Start ganache and deploy our contracts
57 lines (48 loc) • 1.5 kB
JavaScript
const fs = require('fs')
const path = require('path')
const program = require('commander')
const { spawn } = require('child_process')
function migrate(options) {
return new Promise((resolve, reject) => {
const contractMigrate = spawn(`sh ./migrate.sh ${options.network || 'local'}`, {
cwd: path.join(__dirname, './src'),
shell: true,
stdio: 'inherit'
})
contractMigrate.on('error', error => reject(error))
contractMigrate.on('exit', code => {
(code !== 0)
? reject(new Error(`child_process exit with code ${code}`))
: resolve(true)
})
})
}
function deamonStart(options) {
if (options.host) { process.env.hostname = options.host }
if (options.port) { process.env.port = options.port }
require('./src/testrpc.server')
}
program
.version(require('./package.json').version)
.usage('<command> [options]')
.description('Deamon for dc-protocol')
program
.command('start')
.description('Start test rpc')
.option('-h, --host', 'set hostname')
.option('-p, --port', 'set port')
.action(command => deamonStart(command))
program
.command('migrate')
.description('Migrate contracts')
.option('-n --network <blockchainNetwork>', 'Blockchain network for deploy contract')
.action(async command => {
try {
await migrate(command)
} catch (error) {
console.error(error.message)
process.exitCode = 1
process.kill(process.pid, 'SIGTERM')
}
})
program.parse(process.argv)