You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by an...@apache.org on 2013/07/25 00:39:43 UTC

[03/18] git commit: Fixes dependency fetching to work with subdirectories. Also allows subdirectories within platform tags

Fixes dependency fetching to work with subdirectories. Also allows subdirectories within platform tags


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

Branch: refs/heads/plugman-registry
Commit: dd31b39367bcb1c13324944557a190e4cf8fd023
Parents: fef0558
Author: Jeffrey Heifetz <jh...@blackberry.com>
Authored: Wed Jul 17 21:55:22 2013 -0400
Committer: Fil Maj <ma...@gmail.com>
Committed: Thu Jul 18 13:40:17 2013 -0700

----------------------------------------------------------------------
 src/install.js | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/dd31b393/src/install.js
----------------------------------------------------------------------
diff --git a/src/install.js b/src/install.js
index c1b5d17..13aa9bb 100644
--- a/src/install.js
+++ b/src/install.js
@@ -51,7 +51,7 @@ function possiblyFetch(actions, platform, project_dir, id, plugins_dir, options,
     // Check that the plugin has already been fetched.
     if (!fs.existsSync(plugin_dir)) {
         // if plugin doesnt exist, use fetch to get it.
-        require('../plugman').fetch(id, plugins_dir, { link: false, subdir: '.', git_ref: options.git_ref }, function(err, plugin_dir) {
+        require('../plugman').fetch(id, plugins_dir, { link: false, subdir: options.subdir, git_ref: options.git_ref }, function(err, plugin_dir) {
             if (err) {
                 callback(err);
             } else {
@@ -92,8 +92,8 @@ function runInstall(actions, platform, project_dir, plugin_dir, plugins_dir, opt
         if (callback) callback();
         return;
     }
-    
-    // checking engine 
+
+    // checking engine
     // will there be a case for multiple engine support?
     var versionPath = path.join(project_dir, 'cordova', 'version');
     if (fs.existsSync(versionPath)) {
@@ -111,14 +111,14 @@ function runInstall(actions, platform, project_dir, plugin_dir, plugins_dir, opt
             engines.forEach(function(engine){
                 if(engine.attrib["name"].toLowerCase() === "cordova"){
                     var engineVersion = engine.attrib["version"];
-                    // clean only versionScript.output since semver.clean strips out 
+                    // clean only versionScript.output since semver.clean strips out
                     // the gt and lt operators
                     if(current_version == 'dev' || semver.satisfies(current_version, engineVersion)){
                         // engine ok!
                     } else {
                         var err = new Error('Plugin doesn\'t support this project\'s Cordova version. Project version: ' + current_version + ', failed version requirement: ' + engineVersion);
                         if (callback) return callback(err);
-                        else throw err; 
+                        else throw err;
                     }
                 } else {
                     // check for other engines? worklight phonegap etc
@@ -149,7 +149,8 @@ function runInstall(actions, platform, project_dir, plugin_dir, plugins_dir, opt
     }
 
     // Check for dependencies, (co)recurse to install each one
-    var dependencies = plugin_et.findall('dependency');
+    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...');
         var end = n(dependencies.length, function() {
@@ -171,7 +172,7 @@ function runInstall(actions, platform, project_dir, plugin_dir, plugins_dir, opt
             if (dep_url == '.') {
                 // Look up the parent plugin's fetch metadata and determine the correct URL.
                 var fetchdata = require('./util/metadata').get_fetch_metadata(plugin_dir);
-                
+
                 if (!fetchdata || !(fetchdata.source && fetchdata.source.type)) {
                     var err = new Error('No fetch metadata found for ' + plugin_id + '. Cannot install relative dependencies.');
                     if (callback) callback(err);