embark-area-51/bin/embark

76 lines
2.2 KiB
JavaScript

#!/usr/bin/env node
var program = require('commander');
var path = require('path');
var wrench = require('wrench');
var grunt = require('grunt');
require('shelljs/global');
program
.version('0.2.1')
program.command('new [name]').description('New application').action(function(name) {
if (name === undefined) {
console.log("please specify the app name");
exit;
}
var prefPath = path.join(__dirname + '/../boilerplate');
var targetDir = "./" + name;
wrench.copyDirSyncRecursive(prefPath, targetDir);
cd(targetDir);
exec('npm install');
console.log('\n\ninit complete');
});
program.command('deploy [env]').description('deploy contracts').action(function(env_) {
var env = env_ || 'development';
exec("grunt deploy_contracts:" + env);
});
program.command('build [env]').description('build dapp').action(function(env_) {
var env = env_ || 'development';
exec("grunt clean");
exec("grunt deploy_contracts:" + env);
exec('grunt build:' + env);
});
program.command('ipfs [env]').description('build dapp and make it available in ipfs').action(function(env_) {
var env = env_ || 'development';
if (exec("grunt clean").code != 0) { exit(); }
if (exec("grunt deploy_contracts:" + env).code != 0) { exit(); }
if (exec('grunt build:' + env).code != 0) { exit(); }
if (exec('grunt ipfs:' + env).code != 0) { exit(); }
});
program.command('run [env]').description('run dapp').action(function(env_) {
var env = env_ || 'development';
exec('grunt deploy:' + env);
});
program.command('blockchain [env]').description('run blockchain').action(function(env_) {
var env = env_ || 'development';
exec('grunt blockchain:' + env);
});
program.command('demo').description('create a working dapp with a SimpleStorage contract').action(function() {
var boilerPath = path.join(__dirname + '/../boilerplate');
var demoPath = path.join(__dirname + '/../demo');
var targetDir = "./embark_demo";
wrench.copyDirSyncRecursive(boilerPath, targetDir);
wrench.copyDirSyncRecursive(demoPath, targetDir + "/app", {forceDelete: true});
cd(targetDir);
exec('npm install');
console.log('\n\ninit complete');
});
program.parse(process.argv)
if (!process.argv.slice(2).length) {
program.outputHelp();
}