Skip to content
This repository has been archived by the owner on Oct 23, 2022. It is now read-only.

Commit

Permalink
Merge pull request #24 from amtrack/config-dir
Browse files Browse the repository at this point in the history
Don't create config directory unless necessary. Fixes #19
  • Loading branch information
amtrack committed Apr 28, 2016
2 parents d529b3a + f3dc68f commit 7773a6f
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 4 deletions.
9 changes: 8 additions & 1 deletion lib/cli/remote.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,14 @@ SubCommand.prototype.process = function(callback) {
self.project.remotes.setDefault(self.opts['<name>'], callback);
}
else {
console.log(JSON.stringify(self.project.determineRemote()));
var defaultRemote;
try {
defaultRemote = self.project.determineRemote();
}
catch (err) {
return callback(err);
}
console.log(JSON.stringify(defaultRemote));
return callback();
}
}
Expand Down
13 changes: 10 additions & 3 deletions lib/remotes/provider/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,12 @@ var mkdirp = require('mkdirp');

var ConfigRemoteProvider = module.exports = function(config) {
var self = this;
self.config = config;
RemoteProvider.call(self, config);
nconf.use('file', {
file: config.path
});
nconf.load();
if (!fs.existsSync(path.dirname(config.path))) {
mkdirp.sync(path.dirname(config.path), parseInt('0700', 8));
}
};

ConfigRemoteProvider.prototype = Object.create(RemoteProvider.prototype);
Expand Down Expand Up @@ -47,14 +45,19 @@ ConfigRemoteProvider.prototype.get = function(name) {

ConfigRemoteProvider.prototype.setDefault = function(name, callback) {
var remotes = nconf.get('remotes') || {};
var remoteFound = false;
Object.keys(remotes).forEach(function(remoteName){
if (remoteName === name) {
remoteFound = true;
nconf.set('remotes:' + remoteName + ':default', true);
}
else {
nconf.set('remotes:' + remoteName + ':default', false);
}
});
if (!remoteFound) {
return callback(new Error("Could not determine remote `" + name + "`"));
}
this.save(callback);
};

Expand All @@ -64,6 +67,10 @@ ConfigRemoteProvider.prototype.remove = function(name, callback) {
};

ConfigRemoteProvider.prototype.save = function(callback) {
var self = this;
if (!fs.existsSync(path.dirname(self.config.path))) {
mkdirp.sync(path.dirname(self.config.path), parseInt('0700', 8));
}
nconf.save(function(err) {
if (err) {
console.error(err.message);
Expand Down

0 comments on commit 7773a6f

Please sign in to comment.