72 lines
1.4 KiB
JavaScript
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;
|