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': '' }
};