var cmd = function(pax, args, opts) { logger = pax.log; opts = opts || {}; var deferred = d.Deferred(), bowerFile = './bower.json', log = opts.log || cmd.log; log.data('start'); if (fs.existsSync(bowerFile)) { var manifest = JSON.parse(fs.readFileSync(bowerFile, { encoding: 'utf8' })); for(var i in manifest.dependencies) { log.data('dependency', { name: i, version: manifest.dependencies[i] }); } } log.data('end'); if (fs.existsSync(bowerFile)) { deferred.resolve(); } else { deferred.reject(new Error('No bower dependencies')); } return deferred.promise(); };
var composer = function(pax, args, opts) { opts = opts || {}; var deferred = d.Deferred(), log = opts.log || composer.log; log.data('start'); if (composer.manifest) { for(var i in composer.manifest.require) { log.data('dependency', { name:i, version:composer.manifest.require[i] }); } } log.data('end'); if (composer.manifest) { deferred.resolve(); } else { deferred.reject(new Error('No composer dependencies')); } return deferred.promise(); };
var dep = function(pax, args, opts) { var deps = dep.getPackageDependencies(), deferred = d.Deferred(), w = d.when(function() {}); for(var i in deps) { w = w.then(pax.command.get([deps[i]])); } w.then(deferred.resolve, deferred.reject); return deferred.promise(); };
var add = function() { var deferred = d.Deferred(); bower.commands.install(args, {save:true}) .on('log', function(result) { pax.log.out(result.id, result.message); // console.log('log', result); }) .on('error', function() { console.log('fail', arguments); }) .on('end', function() { // console.log('end', arguments); deferred.resolve(); }); return deferred.promise(); };
module.exports = function(pax, args, opts) { var deferred = d.Deferred(), bowerFile = './bower.json'; if (fs.existsSync(bowerFile)) { var manifest = JSON.parse(fs.readFileSync(bowerFile, {encoding:'utf8'})); if (manifest && manifest.dependencies && manifest.dependencies[args[0]]) { delete manifest.dependencies[args[0]]; fs.writeFileSync(bowerFile, JSON.stringify(manifest, null, 2)); rm('-rf', './bower_components/' + args[0]); deferred.resolve(); } else { deferred.reject(new Error('No bower dependency:' + args[0])); } } else { deferred.reject(new Error('No bower dependencies')); } return deferred.promise(); };
var checkArgs = function() { var deferred = d.Deferred(); if (args.length > 0) { var newArgs = []; for(var i in args) { var parsed = url.parse(args[i]); if (parsed.protocol) { if (parsed.protocol == 'git+ssh:') { newArgs.push(args[i].substr('git+ssh://'.length)); continue; } } newArgs.push(args[i]); } args = newArgs; deferred.resolve(); } else { deferred.reject(new Error('No package to add')); } return deferred.promise(); };
module.exports = function(pax, args, opts) { var deferred = d.Deferred(), bowerFile = './bower.json'; var checkArgs = function() { var deferred = d.Deferred(); if (args.length > 0) { var newArgs = []; for(var i in args) { var parsed = url.parse(args[i]); if (parsed.protocol) { if (parsed.protocol == 'git+ssh:') { newArgs.push(args[i].substr('git+ssh://'.length)); continue; } } newArgs.push(args[i]); } args = newArgs; deferred.resolve(); } else { deferred.reject(new Error('No package to add')); } return deferred.promise(); }; var checkBower = function() { var deferred = d.Deferred(); if (!fs.existsSync(bowerFile)) { pax.log.out(''); pax.log.info('Bower is not initialized yet.'); pax.log.info('Luckily pax will guide you through minimum bower initialization'); pax.log.out(''); bower.commands.init({interactive: true}) .on('log', function(result) { // console.log('log', result); }) .on('prompt', function(p, callback) { if (p[0].name == 'prompt') { return callback({prompt: true}); } var schema = { properties: { name: { name: 'Name', default: pax.pkg.manifest.name, required: true }, description: { name: 'Description', default: pax.pkg.manifest.description, required: true }, version: { name: 'Version', default: pax.pkg.manifest.version, required: true } } }; prompt.message = 'bower'; prompt.colors = false; prompt.start(); prompt.get(schema, function(err, json) { if (!err) { json.keywords = ''; json.authors = ''; callback(json); } }); }) .on('error', function() { console.log('error', arguments); }) .on('end', function() { pax.log.out(''); pax.log.info('Bower is initialized.'); pax.log.out(''); deferred.resolve(); // console.log('end', arguments); }); } else { deferred.resolve(); } return deferred.promise(); }; var add = function() { var deferred = d.Deferred(); bower.commands.install(args, {save:true}) .on('log', function(result) { pax.log.out(result.id, result.message); // console.log('log', result); }) .on('error', function() { console.log('fail', arguments); }) .on('end', function() { // console.log('end', arguments); deferred.resolve(); }); return deferred.promise(); }; d.when(checkArgs()) .then(checkBower) .then(add) .then(deferred.resolve, deferred.reject); return deferred.promise(); };
var checkBower = function() { var deferred = d.Deferred(); if (!fs.existsSync(bowerFile)) { pax.log.out(''); pax.log.info('Bower is not initialized yet.'); pax.log.info('Luckily pax will guide you through minimum bower initialization'); pax.log.out(''); bower.commands.init({interactive: true}) .on('log', function(result) { // console.log('log', result); }) .on('prompt', function(p, callback) { if (p[0].name == 'prompt') { return callback({prompt: true}); } var schema = { properties: { name: { name: 'Name', default: pax.pkg.manifest.name, required: true }, description: { name: 'Description', default: pax.pkg.manifest.description, required: true }, version: { name: 'Version', default: pax.pkg.manifest.version, required: true } } }; prompt.message = 'bower'; prompt.colors = false; prompt.start(); prompt.get(schema, function(err, json) { if (!err) { json.keywords = ''; json.authors = ''; callback(json); } }); }) .on('error', function() { console.log('error', arguments); }) .on('end', function() { pax.log.out(''); pax.log.info('Bower is initialized.'); pax.log.out(''); deferred.resolve(); // console.log('end', arguments); }); } else { deferred.resolve(); } return deferred.promise(); };