You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by br...@apache.org on 2013/09/25 17:54:25 UTC

git commit: [CB-4877]: Add --silent flag and basic logging.

Updated Branches:
  refs/heads/master 13c4fcd15 -> d873608f3


[CB-4877]: Add --silent flag and basic logging.


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugman/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugman/commit/d873608f
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugman/tree/d873608f
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugman/diff/d873608f

Branch: refs/heads/master
Commit: d873608f3a0ca869d2de12f28f7dcf7d6e4c8e1a
Parents: 13c4fcd
Author: Braden Shepherdson <br...@gmail.com>
Authored: Wed Sep 25 11:12:47 2013 -0400
Committer: Braden Shepherdson <br...@gmail.com>
Committed: Wed Sep 25 11:53:53 2013 -0400

----------------------------------------------------------------------
 main.js                  |  9 +++++++--
 spec/uninstall.spec.js   |  2 +-
 src/fetch.js             |  8 ++++----
 src/install.js           | 16 ++++++++--------
 src/prepare.js           | 10 +++++-----
 src/uninstall.js         | 23 ++++++++++++-----------
 src/util/action-stack.js | 18 +++++++++---------
 src/util/plugins.js      |  8 ++++----
 src/util/w8jsproj.js     |  2 +-
 9 files changed, 51 insertions(+), 45 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/d873608f/main.js
----------------------------------------------------------------------
diff --git a/main.js b/main.js
index da62faa..3c18964 100755
--- a/main.js
+++ b/main.js
@@ -33,6 +33,7 @@ var known_opts = { 'platform' : [ 'ios', 'android', 'blackberry10', 'wp7', 'wp8'
         , 'version' : Boolean
         , 'help' : Boolean
         , 'debug' : Boolean
+        , 'silent' : Boolean
         , 'plugins': path
         , 'link': Boolean
         , 'variable' : Array
@@ -61,12 +62,16 @@ process.on('uncaughtException', function(error) {
 
 // Set up appropriate logging based on events
 if (cli_opts.debug) {
+    plugman.on('verbose', console.log);
+}
+
+if (!cli_opts.silent) {
     plugman.on('log', console.log);
+    plugman.on('warn', console.warn);
+    plugman.on('results', console.log);
 }
 
-plugman.on('warn', console.warn);
 plugman.on('error', console.error);
-plugman.on('results', console.log);
 
 if (cli_opts.version) {
     console.log(package.name + ' version ' + package.version);

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/d873608f/spec/uninstall.spec.js
----------------------------------------------------------------------
diff --git a/spec/uninstall.spec.js b/spec/uninstall.spec.js
index 318caca..9d9add4 100644
--- a/spec/uninstall.spec.js
+++ b/spec/uninstall.spec.js
@@ -120,7 +120,7 @@ describe('uninstallPlatform', function() {
                 });
                 waitsFor(function() { return done; }, 'promise never resolved', 500);
                 runs(function() {
-                    expect(emit).toHaveBeenCalledWith('log', 'Uninstalling 2 dangling dependent plugins...');
+                    expect(emit).toHaveBeenCalledWith('log', 'Uninstalling 2 dangling dependent plugins.');
                 });
             });
             it('should not uninstall any dependencies that are relied on by other plugins');

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/d873608f/src/fetch.js
----------------------------------------------------------------------
diff --git a/src/fetch.js b/src/fetch.js
index f1052ac..727ff84 100644
--- a/src/fetch.js
+++ b/src/fetch.js
@@ -11,7 +11,7 @@ var shell   = require('shelljs'),
 // possible options: link, subdir, git_ref
 // Returns a promise.
 module.exports = function fetchPlugin(plugin_dir, plugins_dir, options) {
-    require('../plugman').emit('log', 'Fetching plugin from location "' + plugin_dir + '"...');
+    require('../plugman').emit('log', 'Fetching plugin from "' + plugin_dir + '"...');
     // Ensure the containing directory exists.
     shell.mkdir('-p', plugins_dir);
 
@@ -67,7 +67,7 @@ module.exports = function fetchPlugin(plugin_dir, plugins_dir, options) {
         var linkable = true;
         var movePlugin = function(plugin_dir) {
             var plugin_xml_path = path.join(plugin_dir, 'plugin.xml');
-            require('../plugman').emit('log', 'Fetch is reading plugin.xml from location "' + plugin_xml_path + '"...');
+            require('../plugman').emit('verbose', 'Fetch is reading plugin.xml from location "' + plugin_xml_path + '"...');
             var xml = xml_helpers.parseElementtreeSync(plugin_xml_path);
             var plugin_id = xml.getroot().attrib.id;
 
@@ -75,11 +75,11 @@ module.exports = function fetchPlugin(plugin_dir, plugins_dir, options) {
 
             shell.rm('-rf', dest);
             if (options.link && linkable) {
-                require('../plugman').emit('log', 'Symlinking from location "' + plugin_dir + '" to location "' + dest + '"');
+                require('../plugman').emit('verbose', 'Symlinking from location "' + plugin_dir + '" to location "' + dest + '"');
                 fs.symlinkSync(plugin_dir, dest, 'dir');
             } else {
                 shell.mkdir('-p', dest);
-                require('../plugman').emit('log', 'Copying from location "' + plugin_dir + '" to location "' + dest + '"');
+                require('../plugman').emit('verbose', 'Copying from location "' + plugin_dir + '" to location "' + dest + '"');
                 shell.cp('-R', path.join(plugin_dir, '*') , dest);
             }
 

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/d873608f/src/install.js
----------------------------------------------------------------------
diff --git a/src/install.js b/src/install.js
index c541b74..bdb6662 100644
--- a/src/install.js
+++ b/src/install.js
@@ -89,7 +89,7 @@ function cleanVersionOutput(version, name){
         }else{
             out = out.substr(0, dev_index-1);
         }
-        require('../plugman').emit('log', name+' has been detected as using a development branch. Attemping to install anyways.');
+        require('../plugman').emit('verbose', name+' has been detected as using a development branch. Attemping to install anyways.');
     }     
     return out;
 }
@@ -119,7 +119,7 @@ function callEngineScripts(engines) {
             }else if(engine.currentVersion){
                 return cleanVersionOutput(engine.currentVersion, engine.name)
             }else{
-                require('../plugman').emit('log', 'Cordova project '+ engine.scriptSrc +' not detected (lacks a '+ engine.scriptSrc +' script), continuing.');
+                require('../plugman').emit('verbose', 'Cordova project '+ engine.scriptSrc +' not detected (lacks a '+ engine.scriptSrc +' script), continuing.');
                 return null;
             }
         })
@@ -175,7 +175,7 @@ var runInstall = module.exports.runInstall = function runInstall(actions, platfo
       , filtered_variables = {};
     var name         = plugin_et.findall('name').text;
     var plugin_id    = plugin_et.getroot().attrib['id'];
-    require('../plugman').emit('log', 'Starting installation of "' + plugin_id + '"...');
+    require('../plugman').emit('log', 'Starting installation of "' + plugin_id + '" for ' + platform);
 
     // check if platform has plugin installed already.
     var platform_config = config_changes.get_platform_json(plugins_dir, platform);
@@ -220,7 +220,7 @@ var runInstall = module.exports.runInstall = function runInstall(actions, platfo
         var dependencies = plugin_et.findall('dependency') || [];
         dependencies = dependencies.concat(plugin_et.findall('./platform[@name="'+platform+'"]/dependency'));
         if (dependencies && dependencies.length) {
-            require('../plugman').emit('log', 'Dependencies detected, iterating through them...');
+            require('../plugman').emit('verbose', 'Dependencies detected, iterating through them...');
             return Q.all(dependencies.map(function(dep) {
                 var dep_plugin_id = dep.attrib.id;
                 var dep_subdir = dep.attrib.subdir;
@@ -275,7 +275,7 @@ var runInstall = module.exports.runInstall = function runInstall(actions, platfo
                 return urlPromise.then(function(dep_url) {
                     var dep_plugin_dir = path.join(plugins_dir, dep_plugin_id);
                     if (fs.existsSync(dep_plugin_dir)) {
-                        require('../plugman').emit('log', 'Dependent plugin "' + dep_plugin_id + '" already fetched, using that version.');
+                        require('../plugman').emit('verbose', 'Dependent plugin "' + dep_plugin_id + '" already fetched, using that version.');
                         var opts = {
                             cli_variables: filtered_variables,
                             www_dir: options.www_dir,
@@ -283,7 +283,7 @@ var runInstall = module.exports.runInstall = function runInstall(actions, platfo
                         };
                         return runInstall(actions, platform, project_dir, dep_plugin_dir, plugins_dir, opts);
                     } else {
-                        require('../plugman').emit('log', 'Dependent plugin "' + dep_plugin_id + '" not fetched, retrieving then installing.');
+                        require('../plugman').emit('verbose', 'Dependent plugin "' + dep_plugin_id + '" not fetched, retrieving then installing.');
                         var opts = {
                             cli_variables: filtered_variables,
                             www_dir: options.www_dir,
@@ -311,7 +311,7 @@ var runInstall = module.exports.runInstall = function runInstall(actions, platfo
 }
 
 function handleInstall(actions, plugin_id, plugin_et, platform, project_dir, plugins_dir, plugin_basename, plugin_dir, filtered_variables, www_dir, is_top_level) {
-    require('../plugman').emit('log', 'Installing plugin ' + plugin_id + '...');
+    require('../plugman').emit('verbose', 'Installing plugin ' + plugin_id);
     var handler = platform_modules[platform];
     www_dir = www_dir || handler.www_dir(project_dir);
 
@@ -356,7 +356,7 @@ function handleInstall(actions, plugin_id, plugin_et, platform, project_dir, plu
         // call prepare after a successful install
         require('./../plugman').prepare(project_dir, platform, plugins_dir);
 
-        require('../plugman').emit('results', plugin_id + ' installed.');
+        require('../plugman').emit('log', plugin_id + ' installed on ' + platform + '.');
         // WIN!
         // Log out plugin INFO element contents in case additional install steps are necessary
         var info = plugin_et.findall('./info');

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/d873608f/src/prepare.js
----------------------------------------------------------------------
diff --git a/src/prepare.js b/src/prepare.js
index 587c851..967af93 100644
--- a/src/prepare.js
+++ b/src/prepare.js
@@ -44,7 +44,7 @@ module.exports = function handlePrepare(project_dir, platform, plugins_dir) {
     // - For each js-module (general first, then platform) build up an object storing the path and any clobbers, merges and runs for it.
     // - Write this object into www/cordova_plugins.json.
     // - Cordova.js contains code to load them at runtime from that file.
-    require('../plugman').emit('log', 'Preparing ' + platform + ' project...');
+    require('../plugman').emit('log', 'Preparing ' + platform + ' project');
     var platform_json = config_changes.get_platform_json(plugins_dir, platform);
     var wwwDir = platform_modules[platform].www_dir(project_dir);
 
@@ -58,14 +58,14 @@ module.exports = function handlePrepare(project_dir, platform, plugins_dir) {
                 var id = plug.id;
                 var plugin_modules = path.join(plugins_www, id);
                 if (fs.existsSync(plugin_modules)) {
-                    require('../plugman').emit('log', 'Removing plugins directory from www "'+plugin_modules+'"');
+                    require('../plugman').emit('verbose', 'Removing plugins directory from www "'+plugin_modules+'"');
                     shell.rm('-rf', plugin_modules);
                 }
             });
         }
     }
 
-    require('../plugman').emit('log', 'Processing configuration changes for plugins.');
+    require('../plugman').emit('verbose', 'Processing configuration changes for plugins.');
     config_changes.process(plugins_dir, project_dir, platform);
 
     // for windows phone plaform we need to add all www resources to the .csproj file
@@ -117,7 +117,7 @@ module.exports = function handlePrepare(project_dir, platform, plugins_dir) {
     // This array holds all the metadata for each module and ends up in cordova_plugins.json
     var plugins = Object.keys(platform_json.installed_plugins).concat(Object.keys(platform_json.dependent_plugins));
     var moduleObjects = [];
-    require('../plugman').emit('log', 'Iterating over installed plugins:', plugins);
+    require('../plugman').emit('verbose', 'Iterating over installed plugins:', plugins);
 
     plugins && plugins.forEach(function(plugin) {
         var pluginDir = path.join(plugins_dir, plugin);
@@ -197,7 +197,7 @@ module.exports = function handlePrepare(project_dir, platform, plugins_dir) {
     // Write out moduleObjects as JSON wrapped in a cordova module to cordova_plugins.js
     var final_contents = "cordova.define('cordova/plugin_list', function(require, exports, module) {\n";
     final_contents += 'module.exports = ' + JSON.stringify(moduleObjects,null,'    ') + '\n});';
-    require('../plugman').emit('log', 'Writing out cordova_plugins.js...');
+    require('../plugman').emit('verbose', 'Writing out cordova_plugins.js...');
     fs.writeFileSync(path.join(wwwDir, 'cordova_plugins.js'), final_contents, 'utf-8');
 
     if(platform == 'wp7' || platform == 'wp8' || platform == "windows8") {

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/d873608f/src/uninstall.js
----------------------------------------------------------------------
diff --git a/src/uninstall.js b/src/uninstall.js
index 1dbfa73..335c3ac 100644
--- a/src/uninstall.js
+++ b/src/uninstall.js
@@ -48,23 +48,24 @@ module.exports.uninstallPlugin = function(id, plugins_dir) {
     var xml_path     = path.join(plugin_dir, 'plugin.xml')
       , plugin_et    = xml_helpers.parseElementtreeSync(xml_path);
 
-    require('../plugman').emit('log', 'Removing plugin ' + id + '...');
+    require('../plugman').emit('log', 'Deleting plugin ' + id);
     // Check for dependents
     var dependencies = plugin_et.findall('dependency');
     if (dependencies && dependencies.length) {
-        require('../plugman').emit('log', 'Dependencies detected, iterating through them and removing them first...');
-        return Q.all(
-            dependencies.map(function(dep) {
+        require('../plugman').emit('verbose', 'Dependencies detected, iterating through them and removing them first.');
+        return dependencies.reduce(function(soFar, dep) {
+            return soFar.then(function() {
                 return module.exports.uninstallPlugin(dep.attrib.id, plugins_dir);
-            })
-        ).then(function() {
+            });
+        }, Q())
+        .then(function() {
             shell.rm('-rf', plugin_dir);
-            require('../plugman').emit('log', id + ' removed.');
+            require('../plugman').emit('verbose', id + ' deleted.');
         });
     } else {
         // axe the directory
         shell.rm('-rf', plugin_dir);
-        require('../plugman').emit('results', 'Deleted "' + plugin_dir + '".');
+        require('../plugman').emit('verbose', 'Deleted "' + plugin_dir + '".');
         return Q();
     }
 };
@@ -97,7 +98,7 @@ function runUninstall(actions, platform, project_dir, plugin_dir, plugins_dir, o
     diff_arr.unshift(dependents);
     var danglers = underscore.difference.apply(null, diff_arr);
     if (dependents.length && danglers && danglers.length) {
-        require('../plugman').emit('log', 'Uninstalling ' + danglers.length + ' dangling dependent plugins...');
+        require('../plugman').emit('log', 'Uninstalling ' + danglers.length + ' dangling dependent plugins.');
         return Q.all(
             danglers.map(function(dangler) {
                 var dependent_path = path.join(plugins_dir, dangler);
@@ -123,7 +124,7 @@ function handleUninstall(actions, platform, plugin_id, plugin_et, project_dir, w
     var handler = platform_modules[platform];
     var platformTag = plugin_et.find('./platform[@name="'+platform+'"]');
     www_dir = www_dir || handler.www_dir(project_dir);
-    require('../plugman').emit('log', 'Uninstalling ' + plugin_id + '...');
+    require('../plugman').emit('log', 'Uninstalling ' + plugin_id + ' from ' + platform);
 
     var assets = plugin_et.findall('./asset');
     if (platformTag) {
@@ -161,7 +162,7 @@ function handleUninstall(actions, platform, plugin_id, plugin_et, project_dir, w
     return actions.process(platform, project_dir)
     .then(function() {
         // WIN!
-        require('../plugman').emit('results', plugin_id + ' uninstalled.');
+        require('../plugman').emit('verbose', plugin_id + ' uninstalled from ' + platform + '.');
         // queue up the plugin so prepare can remove the config changes
         config_changes.add_uninstalled_plugin_to_prepare_queue(plugins_dir, path.basename(plugin_dir), platform, is_top_level);
         // call prepare after a successful uninstall

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/d873608f/src/util/action-stack.js
----------------------------------------------------------------------
diff --git a/src/util/action-stack.js b/src/util/action-stack.js
index 920dfea..122e19b 100644
--- a/src/util/action-stack.js
+++ b/src/util/action-stack.js
@@ -28,25 +28,25 @@ ActionStack.prototype = {
     },
     // Returns a promise.
     process:function(platform, project_dir) {
-        require('../../plugman').emit('log', 'Beginning processing of action stack for ' + platform + ' project...');
+        require('../../plugman').emit('verbose', 'Beginning processing of action stack for ' + platform + ' project...');
         var project_files;
         // parse platform-specific project files once
-        require('../../plugman').emit('log', 'Parsing ' + platform + ' project files...');
+        require('../../plugman').emit('verbose', 'Parsing ' + platform + ' project files...');
         switch(platform) {
             case "ios": 
-                require('../../plugman').emit('log', 'Parsing iOS project files...');
+                require('../../plugman').emit('verbose', 'Parsing iOS project files...');
                 project_files = ios.parseIOSProjectFiles(project_dir);
                 break;
             case "wp7": 
-                require('../../plugman').emit('log', 'Parsing WP7 project files...');
+                require('../../plugman').emit('verbose', 'Parsing WP7 project files...');
                 project_files = wp7.parseProjectFile(project_dir);
                 break;
             case "wp8": 
-                require('../../plugman').emit('log', 'Parsing WP8 project files...');
+                require('../../plugman').emit('verbose', 'Parsing WP8 project files...');
                 project_files = wp8.parseProjectFile(project_dir);
                 break;
             case "windows8": 
-                require('../../plugman').emit('log', 'Parsing Windows8 project files...');
+                require('../../plugman').emit('verbose', 'Parsing Windows8 project files...');
                 project_files = windows8.parseProjectFile(project_dir);
                 break;
         }
@@ -87,14 +87,14 @@ ActionStack.prototype = {
             }
             this.completed.push(action);
         }
-        require('../../plugman').emit('log', 'Action stack processing complete.');
+        require('../../plugman').emit('verbose', 'Action stack processing complete.');
         if (platform == 'ios') {
             // write out xcodeproj file
-            require('../../plugman').emit('log', 'Writing out iOS pbxproj file...');
+            require('../../plugman').emit('verbose', 'Writing out iOS pbxproj file...');
             fs.writeFileSync(project_files.pbx, project_files.xcode.writeSync());
         }
         if (platform == 'wp7' || platform == 'wp8' || platform == "windows8") {
-            require('../../plugman').emit('log', 'Writing out ' + platform + ' project files...');
+            require('../../plugman').emit('verbose', 'Writing out ' + platform + ' project files...');
             project_files.write();
         }
         return Q();

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/d873608f/src/util/plugins.js
----------------------------------------------------------------------
diff --git a/src/util/plugins.js b/src/util/plugins.js
index 2bf78e2..170d7b0 100644
--- a/src/util/plugins.js
+++ b/src/util/plugins.js
@@ -42,7 +42,7 @@ module.exports = {
 
         shell.cd(path.dirname(tmp_dir));
         var cmd = util.format('git clone "%s" "%s"', plugin_git_url, path.basename(tmp_dir));
-        require('../../plugman').emit('log', 'Fetching plugin via git-clone command: ' + cmd);
+        require('../../plugman').emit('verbose', 'Fetching plugin via git-clone command: ' + cmd);
         var d = Q.defer();
         child_process.exec(cmd, function(err, stdout, stderr) {
             if (err) {
@@ -52,7 +52,7 @@ module.exports = {
             }
         });
         return d.promise.then(function() {
-            require('../../plugman').emit('log', 'Plugin "' + plugin_git_url + '" fetched.');
+            require('../../plugman').emit('verbose', 'Plugin "' + plugin_git_url + '" fetched.');
             // Check out the specified revision, if provided.
             if (git_ref) {
                 var cmd = util.format('git checkout "%s"', tmp_dir, git_ref);
@@ -76,10 +76,10 @@ module.exports = {
             // TODO: what if a plugin dependended on different subdirectories of the same plugin? this would fail.
             // should probably copy over entire plugin git repo contents into plugins_dir and handle subdir seperately during install.
             var plugin_dir = path.join(plugins_dir, plugin_id);
-            require('../../plugman').emit('log', 'Copying fetched plugin over "' + plugin_dir + '"...');
+            require('../../plugman').emit('verbose', 'Copying fetched plugin over "' + plugin_dir + '"...');
             shell.cp('-R', path.join(tmp_dir, '*'), plugin_dir);
 
-            require('../../plugman').emit('log', 'Plugin "' + plugin_id + '" fetched.');
+            require('../../plugman').emit('verbose', 'Plugin "' + plugin_id + '" fetched.');
             return plugin_dir;
         });
     }

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/d873608f/src/util/w8jsproj.js
----------------------------------------------------------------------
diff --git a/src/util/w8jsproj.js b/src/util/w8jsproj.js
index e589b81..bd5dd41 100644
--- a/src/util/w8jsproj.js
+++ b/src/util/w8jsproj.js
@@ -8,7 +8,7 @@ var xml_helpers = require('./xml-helpers'),
     fs = require('fs');
 
 function jsproj(location) {
-    require('../../plugman').emit('log','creating jsproj from project at : ' + location);
+    require('../../plugman').emit('verbose','creating jsproj from project at : ' + location);
     this.location = location;
     this.xml = xml_helpers.parseElementtreeSync(location);
     return this;