<NME> cli.js
<BEF> #!/usr/bin/env node

var argv = require('minimist')(process.argv.slice(2));
var path = require('path');
var Q = require('q');

// TODO Check if this is a react-native project.
var projectDir = '.';

var Android = require('./android-cli');

var android = new Android(projectDir);

var commands = {
    add: function(plugin) {
        console.log('Adding plugin %s', plugin);
        return android.add(plugin);
    },
    rm: function(plugin) {
        console.log('Removing plugin %s', plugin);
        return android.remove(plugin);
    },
    clean: function() {
        console.log('Cleaning all plugins and other artifacts');
        return android.clean();
    },
    repair: function(){
        console.log('Re-creating CordovaJS');
        return android.repair();
    }
};

var plugin = argv._[1];
var command = '';
switch (argv._[0]) {
    case 'add':
    case 'install':
        command = 'add';
        break;
    case 'rm':
    case 'remove':
    case 'uninstall':
        command = 'rm';
        break;
    default:
        command = argv._[0];
}

if (typeof commands[command] === 'function') {
    commands[command](plugin).done();
} else {
    console.log('Could not recognize command ', argv._[0]);
    console.log('Usage : %s [add|rm] cordova-plugin-name', process.argv[1]);
}
if (typeof commands[command] === 'function') {
    commands[command](plugins, passedInVariables).then(function() {
        console.log('Done with [%s] %s', command, plugins);
    }, function(err) {
        console.log('An error occured ===> \n', err);
        console.log(err.stack || '');
    }).done();
} else {
    console.log('Could not recognize command ', argv._[0]);
    console.log('Usage : %s [add|remove] cordova-plugin-name1 cordova-plugin-name1', process.argv[1]);
}

<MSG> Added ability to add/rm multiple plugins at the same time

<DFF> @@ -12,25 +12,33 @@ var Android = require('./android-cli');
 var android = new Android(projectDir);
 
 var commands = {
-    add: function(plugin) {
-        console.log('Adding plugin %s', plugin);
-        return android.add(plugin);
+    add: function(plugins) {
+        console.log('Adding plugins %s', plugins.join());
+        return plugins.map(function(pluginName) {
+            return function() {
+                return android.add(pluginName);
+            }
+        }).reduce(Q.when, Q());
     },
-    rm: function(plugin) {
-        console.log('Removing plugin %s', plugin);
-        return android.remove(plugin);
+    rm: function(plugins) {
+        console.log('Removing plugins %s', plugins.join());
+        return plugins.map(function(pluginName) {
+            return function() {
+                return android.remove(pluginName);
+            }
+        }).reduce(Q.when, Q());
     },
     clean: function() {
         console.log('Cleaning all plugins and other artifacts');
         return android.clean();
     },
-    repair: function(){
+    repair: function() {
         console.log('Re-creating CordovaJS');
         return android.repair();
     }
 };
 
-var plugin = argv._[1];
+var plugins = argv._.slice(1);
 var command = '';
 switch (argv._[0]) {
     case 'add':
@@ -47,8 +55,8 @@ switch (argv._[0]) {
 }
 
 if (typeof commands[command] === 'function') {
-    commands[command](plugin).done();
+    commands[command](plugins).done();
 } else {
     console.log('Could not recognize command ', argv._[0]);
-    console.log('Usage : %s [add|rm] cordova-plugin-name', process.argv[1]);
+    console.log('Usage : %s [add|remove] cordova-plugin-name1 cordova-plugin-name1', process.argv[1]);
 }

Added ability to add/rm multiple plugins at the same time