granary
Version:
Dependency Bundling for NPM and Bower
46 lines (43 loc) • 1.57 kB
JavaScript
// TODO: if we authenticate with ssh keys we can remove this
var read = require('read');
var Promise = require('bluebird');
var levelup = require('levelup');
var memdown = require('memdown');
var db = levelup({ db: memdown });
module.exports = function(log) {
return {
try: function() {
return new Promise(function(resolve, reject) {
if (process.env.GRANARY_PASSWORD) {
return resolve(process.env.GRANARY_PASSWORD);
}
db.get('password', function (err, value) {
if (err) {
read({
prompt: 'Granary Server Password: ',
silent: true
}, function(err, password) {
if (err) {
reject(err);
} else {
db.put('password', password, function(){
resolve(password);
});
}
});
} else {
log.info('using logged value');
resolve(value);
}
});
});
},
reject: function() {
return new Promise(function(resolve, reject) { // eslint-disable-line no-unused-vars
db.del('password', function(){
resolve();
});
});
}
};
};