cordova prepare now calls into plugman to ensure existing plugins have their 
config file changes propagated.


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

Branch: refs/heads/2.8.x
Commit: e123e923a6aae10fb0a959eb920d2a5ffe8708ea
Parents: e28f572
Author: Fil Maj <[email protected]>
Authored: Mon Jun 3 14:01:20 2013 -0700
Committer: Fil Maj <[email protected]>
Committed: Mon Jun 3 15:07:32 2013 -0700

----------------------------------------------------------------------
 src/prepare.js |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/e123e923/src/prepare.js
----------------------------------------------------------------------
diff --git a/src/prepare.js b/src/prepare.js
index 523d90b..b5c66ee 100644
--- a/src/prepare.js
+++ b/src/prepare.js
@@ -80,9 +80,21 @@ module.exports = function prepare(platforms, callback) {
         var parser = new parsers[platform](platformPath);
 
         parser.update_project(cfg, function() {
-            // Call plugman --prepare for this platform.
-            plugman.prepare(platformPath, platform, path.join(projectRoot, 
'plugins'));
+            // Call plugman --prepare for this platform. sets up js-modules 
appropriately.
+            var plugins_dir = path.join(projectRoot, 'plugins');
+            plugman.prepare(platformPath, platform, plugins_dir);
 
+            // Make sure that config changes for each existing plugin is in 
place
+            var plugins = cordova_util.findPlugins(plugins_dir);
+            var platform_json = 
plugman.config_changes.get_platform_json(plugins_dir, platform);
+            plugins.forEach(function(plugin_id) {
+                if (platform_json.installed_plugins[plugin_id]) {
+                    console.log('readding ' + plugin_id);
+                    plugman.config_changes.add_plugin_changes(platform, 
platformPath, plugins_dir, plugin_id, /* variables for plugin */ 
platform_json.installed_plugins[plugin_id], /* top level plugin? */ true, /* 
should increment config munge? cordova-cli never should, only plugman */ false);
+                } else if (platform_json.dependent_plugins[plugin_id]) {
+                    plugman.config_changes.add_plugin_changes(platform, 
platformPath, plugins_dir, plugin_id, /* variables for plugin */ 
platform_json.dependent_plugins[plugin_id], /* top level plugin? */ false, /* 
should increment config munge? cordova-cli never should, only plugman */ false);
+                }
+            });
             end();
         });
     });

Reply via email to