flocore-node/lib/scaffold/create.js
2015-08-24 18:51:07 -04:00

72 lines
1.4 KiB
JavaScript

'use strict';
var bitcore = require('bitcore');
var version = require('../../package.json').version;
var mkdirp = require('mkdirp');
var fs = require('fs');
var BASE_CONFIG = {
name: 'My Node',
modules: [
'address'
],
datadir: './data',
network: 'livenet'
};
var BASE_PACKAGE = {
dependencies: {
'bitcore': '^' + bitcore.version,
'bitcore-node': '^' + version
}
};
var BASE_BITCOIN_CONFIG = 'whitelist=127.0.0.1\n' + 'txindex=1\n';
function create(baseDirectory, dirname, name, done) {
if (!baseDirectory) {
baseDirectory = process.cwd;
}
var directory = baseDirectory + '/' + dirname;
mkdirp(directory, function(err) {
if (err) {
throw err;
}
// setup the configuration files
var config = BASE_CONFIG;
config.name = name;
var configJSON = JSON.stringify(config, null, 2);
var packageJSON = JSON.stringify(BASE_PACKAGE, null, 2);
try {
fs.writeFileSync(directory + '/bitcore-node.json', configJSON);
fs.writeFileSync(directory + '/package.json', packageJSON);
} catch(e) {
done(e);
}
// setup the bitcoin data directory
mkdirp(directory + '/data', function(err) {
if (err) {
throw err;
}
try {
fs.writeFileSync(directory + '/data/bitcoin.conf', BASE_BITCOIN_CONFIG);
} catch(e) {
done(e);
}
done();
});
});
}
module.exports = create;