UNPKG

clown

Version:
58 lines (44 loc) 1.23 kB
var _ = require('lodash'), pkgcloud = require('pkgcloud'); var log = require('./log'); var exports = module.exports = function createClient(argv) { var resource = argv._[0]; if (!resource || !pkgcloud[resource] || !pkgcloud[resource].createClient) { throw new Error('You need to specify a pkgcloud resource (eg. `compute`)'); } var options = argv[resource] || {}; log.verbose('client', 'pkgcloud.%s.createClient(%j);', resource, scrub(options)); var client = pkgcloud[resource].createClient(options); log.pkgcloud(client); return client; }; function scrub(options) { return _.transform(options, function(acc, v, k) { acc[k] = k === 'provider' ? v : '*****'; }); } exports.available = function available() { function asArray() { var av = []; Object.keys(pkgcloud).forEach(function (k) { var v = pkgcloud[k]; if (k[0] !== '_' && v.createClient) { av.push(k); } }); return av; } function toString() { var av = asArray(); return ( 'Available Resources:\n\n' + av.map(function (s) { return ' * ' + s; }).join('\n') ); } // Being an asshole. return { asArray: asArray, toString: toString }; }