diff --git a/bin/start.js b/bin/start.js index bd98b5eb..72a59a0c 100644 --- a/bin/start.js +++ b/bin/start.js @@ -1,13 +1,14 @@ 'use strict'; var start = require('../lib/scaffold/start'); +var path = require('path'); start({ path: process.cwd(), config: { - datadir: process.env.BITCORENODE_DIR || '~/.bitcoin', + datadir: process.env.BITCORENODE_DIR || path.resolve(process.env.HOME, '.bitcoin'), network: process.env.BITCORENODE_NETWORK || 'livenet', - port: 3000 + port: process.env.BITCORENODE_PORT || 3001 } }); diff --git a/lib/node.js b/lib/node.js index 18712823..4218cd3e 100644 --- a/lib/node.js +++ b/lib/node.js @@ -57,12 +57,11 @@ Node.DEFAULT_DAEMON_CONFIG = 'whitelist=127.0.0.1\n' + 'txindex=1\n'; Node.prototype._loadBitcoinConf = function(config) { $.checkArgument(config.datadir, 'Please specify "datadir" in configuration options'); - var datadir = config.datadir.replace(/^~/, process.env.HOME); - var configPath = datadir + '/bitcoin.conf'; + var configPath = config.datadir + '/bitcoin.conf'; this.bitcoinConfiguration = {}; - if (!fs.existsSync(datadir)) { - mkdirp.sync(datadir); + if (!fs.existsSync(config.datadir)) { + mkdirp.sync(config.datadir); } if (!fs.existsSync(configPath)) { @@ -329,13 +328,12 @@ Node.prototype._loadDB = function(config) { $.checkArgument(config.datadir, 'Please specify "datadir" in configuration options'); $.checkState(this.network, 'Network property not defined'); var regtest = Networks.get('regtest'); - var datadir = config.datadir.replace(/^~/, process.env.HOME); if (this.network === Networks.livenet) { - options.path = datadir + '/bitcore-node.db'; + config.db.path = config.datadir + '/bitcore-node.db'; } else if (this.network === Networks.testnet) { - options.path = datadir + '/testnet3/bitcore-node.db'; + config.db.path = config.datadir + '/testnet3/bitcore-node.db'; } else if (this.network === regtest) { - options.path = datadir + '/regtest/bitcore-node.db'; + config.db.path = config.datadir + '/regtest/bitcore-node.db'; } else { throw new Error('Unknown network: ' + this.network); } diff --git a/lib/scaffold/start.js b/lib/scaffold/start.js index 44324eb0..ff624006 100644 --- a/lib/scaffold/start.js +++ b/lib/scaffold/start.js @@ -39,8 +39,7 @@ function start(options) { var fullConfig = _.clone(config); // expand to the full path - var datadir = config.datadir.replace(/^~/, process.env.HOME); - fullConfig.datadir = path.resolve(configPath, datadir); + fullConfig.datadir = path.resolve(configPath, config.datadir); // load the modules fullConfig.db = { diff --git a/test/node.unit.js b/test/node.unit.js index 552b3e40..831c2959 100644 --- a/test/node.unit.js +++ b/test/node.unit.js @@ -101,7 +101,7 @@ describe('Bitcoind Node', function() { describe('#_loadBitcoinConf', function() { it('will parse a bitcoin.conf file', function() { var node = new Node({}); - node._loadBitcoinConf({datadir: '~/.bitcoin'}); + node._loadBitcoinConf({datadir: process.env.HOME + '/.bitcoin'}); should.exist(node.bitcoinConfiguration); node.bitcoinConfiguration.should.deep.equal({ server: 1, @@ -349,7 +349,7 @@ describe('Bitcoind Node', function() { }; var config = { DB: DB, - datadir: '~/.bitcoin' + datadir: process.env.HOME + '/.bitcoin' }; var node = new Node(config); @@ -363,7 +363,7 @@ describe('Bitcoind Node', function() { }; var config = { DB: DB, - datadir: '~/.bitcoin' + datadir: process.env.HOME + '/.bitcoin' }; var node = new Node(config); @@ -373,7 +373,7 @@ describe('Bitcoind Node', function() { }); it('error with unknown network', function() { var config = { - datadir: '~/.bitcoin' + datadir: process.env.HOME + '/.bitcoin' }; var node = new Node(config); @@ -388,7 +388,7 @@ describe('Bitcoind Node', function() { }; var config = { DB: DB, - datadir: '~/.bitcoin' + datadir: process.env.HOME + '/.bitcoin' }; var node = new Node(config);