diff --git a/lib/services/bitcoind.js b/lib/services/bitcoind.js index 7e0e04f9..f1e21464 100644 --- a/lib/services/bitcoind.js +++ b/lib/services/bitcoind.js @@ -313,6 +313,15 @@ Bitcoin.prototype._parseBitcoinConf = function(configPath) { return options; }; +Bitcoin.prototype._expandRelativeDatadir = function() { + if (!utils.isAbsolutePath(this.options.spawn.datadir)) { + $.checkState(this.node.configPath); + $.checkState(utils.isAbsolutePath(this.node.configPath)); + var baseConfigPath = path.dirname(this.node.configPath); + this.options.spawn.datadir = path.resolve(baseConfigPath, this.options.spawn.datadir); + } +}; + Bitcoin.prototype._loadSpawnConfiguration = function(node) { /* jshint maxstatements: 25 */ @@ -320,12 +329,7 @@ Bitcoin.prototype._loadSpawnConfiguration = function(node) { $.checkArgument(this.options.spawn.datadir, 'Please specify "spawn.datadir" in bitcoind config options'); $.checkArgument(this.options.spawn.exec, 'Please specify "spawn.exec" in bitcoind config options'); - if (!utils.isAbsolutePath(this.options.spawn.datadir)) { - $.checkState(this.node.configPath); - $.checkState(utils.isAbsolutePath(this.node.configPath)); - var baseConfigPath = path.dirname(this.node.configPath); - this.options.spawn.datadir = path.resolve(baseConfigPath, this.options.spawn.datadir); - } + this._expandRelativeDatadir(); var spawnOptions = this.options.spawn; var configPath = path.resolve(spawnOptions.datadir, './bitcoin.conf');