cdnjs
Version:
Search and URL retrieval from cdnjs
60 lines (45 loc) • 1.33 kB
JavaScript
;
require('colors');
var com = require('commander');
var fs = require('fs');
var pkg = require('../package.json');
var cdnjs = require('../cdn.js');
// Usage
com
.version(pkg.version)
.usage('[-u] <search|url> library')
.option('-u, --url-only', 'Output only the url')
.on('--help', function() {
console.log(fs.readFileSync('help-examples.txt', 'utf-8'));
})
.parse(process.argv);
// Show help when used with no args
if (com.args.length === 0) { return com.help(); }
var method = com.args[0];
var term = com.args[1];
if (!cdnjs[method]) {
console.log('Unknown method, assuming search.'.red);
if (!term) { term = method; }
method = 'search';
}
cdnjs[method](term, function (err, results) {
if (err) { return console.log((''+err).red) && process.exit(1); }
if (!results) { return console.log('Error: Nothing found.'.red) && process.exit(1); }
if (!Array.isArray(results)) { results = [results]; }
results.forEach(function (result) {
if(com.urlOnly) { return console.log(result.url); }
var name = pad(result.name, 30);
if (term === result.name) { name = name.green; }
console.log(
name + (': ' + result.url).grey
);
});
});
// Utilities
function pad(str, len) {
while (str.length < len) {
str += ' ';
}
return str;
}