You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2013/09/12 20:14:31 UTC

[03/40] git commit: [CB-4490 & CB-4036] - added check for cordova-plugman and made a util function

[CB-4490 & CB-4036] - added check for cordova-plugman and made a util function


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

Branch: refs/heads/ffos
Commit: c06a07ef550e845bdbf396714357d0fcf312c19a
Parents: faccfd5
Author: Tim Kim <ti...@adobe.com>
Authored: Tue Aug 13 15:11:50 2013 -0700
Committer: Tim Kim <ti...@adobe.com>
Committed: Mon Aug 26 16:47:16 2013 -0700

----------------------------------------------------------------------
 spec/plugins/EnginePlugin/plugin.xml |  1 +
 src/install.js                       | 26 +++++++++++++++-----------
 src/util/default-engines.js          | 13 ++++++++++++-
 3 files changed, 28 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/c06a07ef/spec/plugins/EnginePlugin/plugin.xml
----------------------------------------------------------------------
diff --git a/spec/plugins/EnginePlugin/plugin.xml b/spec/plugins/EnginePlugin/plugin.xml
index fe875a3..169e8d1 100644
--- a/spec/plugins/EnginePlugin/plugin.xml
+++ b/spec/plugins/EnginePlugin/plugin.xml
@@ -25,6 +25,7 @@
 
     <engines>
         <engine name="cordova" version=">=2.3.0" platform="*" />
+        <engine name="cordova-plugman" version=">=0.10.0" platform="*" />
     </engines>
     
 </plugin>

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/c06a07ef/src/install.js
----------------------------------------------------------------------
diff --git a/src/install.js b/src/install.js
index accc25a..4e88b80 100644
--- a/src/install.js
+++ b/src/install.js
@@ -77,6 +77,15 @@ function checkMinimumReq(engines, callback) {
     });
 }
 
+function cleanVersionRC(version){
+    var out = version.trim();
+    var rc_index = out.indexOf('rc');
+    if (rc_index > -1) {
+        out = out.substr(0, rc_index) + '-' + out.substr(rc_index);
+    }    
+    return out;
+}
+
 // exec engine scripts in order to get the current engine version
 function callEngineScripts(engines) {
     var engineScript;
@@ -86,18 +95,14 @@ function callEngineScripts(engines) {
         if(fs.existsSync(engine.scriptTarget)){
             fs.chmodSync(engine.scriptTarget, '755');
             engineScript = shell.exec(engine.scriptTarget, {silent: true});
-            
             if (engineScript.code === 0) {
-                engineScriptVersion = engineScript.output.trim();
-                var rc_index = engineScriptVersion.indexOf('rc');
-                if (rc_index > -1) {
-                    engineScriptVersion = engineScriptVersion.substr(0, rc_index) + '-' + engineScriptVersion.substr(rc_index);
-                }
-                
+                engineScriptVersion = cleanVersionRC(engineScript.output)
             }else{
                 engineScriptVersion = null;
                 require('../plugman').emit('log', 'Cordova project '+ engine.scriptTarget +' script failed (has a '+ engine.scriptTarget +' script, but something went wrong executing it), continuing anyways.');
-            }            
+            }  
+        }else if(engine.minVersion){
+            engineScriptVersion = cleanVersionRC(engine.minVersion)           
         }else{
             engineScriptVersion = null;
             require('../plugman').emit('log', 'Cordova project '+ engine.scriptTarget +' not detected (lacks a '+ engine.scriptTarget +' script), continuing.');
@@ -114,14 +119,13 @@ function getEngines(pluginElement, platform, project_dir){
     var defaultEngines = require('./util/default-engines');
     var uncheckedEngines = [];
     var tempEngine;
-
     // load in all known defaults and compare
     engines.forEach(function(engine){   
         // this may need some changes - what to do for default platforms - why need to specify platforms?
         if(engine.attrib["platform"] === platform || engine.attrib["platform"] === '*'){
             if(defaultEngines[engine.attrib["name"]]){
-                defaultEngines[engine.attrib["name"]].minVersion = engine.attrib["version"];
-                defaultEngines[engine.attrib["name"]].scriptTarget = path.join(project_dir, defaultEngines[engine.attrib["name"]].scriptTarget);
+                defaultEngines[engine.attrib["name"]].minVersion = defaultEngines[engine.attrib["name"]].minVersion ? defaultEngines[engine.attrib["name"]].minVersion : engine.attrib["version"];
+                defaultEngines[engine.attrib["name"]].scriptTarget = defaultEngines[engine.attrib["name"]].scriptTarget ? path.join(project_dir, defaultEngines[engine.attrib["name"]].scriptTarget) : null;
                 uncheckedEngines.push(defaultEngines[engine.attrib["name"]]);
             }else{
                 // check for other engines

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/c06a07ef/src/util/default-engines.js
----------------------------------------------------------------------
diff --git a/src/util/default-engines.js b/src/util/default-engines.js
index 4499df6..e1a26d1 100644
--- a/src/util/default-engines.js
+++ b/src/util/default-engines.js
@@ -7,8 +7,9 @@ var path = require('path');
 module.exports = {
     'cordova': 
         { 'platform':'*', 'scriptTarget': path.join('cordova','version') },   
+    // no location needed for plugman as this should be the calling process
     'cordova-plugman': 
-        { 'platform':'*', 'scriptTarget': '' },
+        { 'platform':'*', 'minVersion': process.version },
     'cordova-android': 
         { 'platform':'android', 'scriptTarget': '' },
     'cordova-ios': 
@@ -21,12 +22,22 @@ module.exports = {
         { 'platform':'wp8', 'scriptTarget': '' },
     'cordova-windows8': 
         { 'platform':'windows8', 'scriptTarget': '' },
+    
+    // ideally these sdk versions will be known via a script
+    // that calls the sdk's version command - the idea would be that
+    // these version scripts output all in the same way and parse
+    // the appropriate blob of info returned from the sdk version command
     'apple-xcode' : 
         { 'platform':'ios', 'scriptTarget': '' },
     'apple-ios' : 
         { 'platform':'ios', 'scriptTarget': '' },
     'blackberry-webworks' : 
+        // use path to sdk/Framework/lib/webworks-info.js 
+        // will export as version number
+        // currently though, all versions of webworks sdk should be good to go 
+        // so this is technically *not* needed right now
         { 'platform':'blackberry10', 'scriptTarget': '' },
     'android-sdk' : 
+        // will have to parse string output from android list targets
         { 'platform':'android', 'scriptTarget': '' }
 };