You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ka...@apache.org on 2014/06/12 23:28:08 UTC
[1/2] git commit: Minor style filxes in cordova/platform.js
Repository: cordova-lib
Updated Branches:
refs/heads/master 8dca6770e -> 4548595f1
Minor style filxes in cordova/platform.js
Committing separately to avoid mixing this with real logic changes coming next.
Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/8f63b943
Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/8f63b943
Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/8f63b943
Branch: refs/heads/master
Commit: 8f63b9438c411e67c89d977d62d3f863538f4bb9
Parents: 8dca677
Author: Mark Koudritsky <ka...@gmail.com>
Authored: Thu Jun 12 17:00:34 2014 -0400
Committer: Mark Koudritsky <ka...@gmail.com>
Committed: Thu Jun 12 17:00:34 2014 -0400
----------------------------------------------------------------------
cordova-lib/src/cordova/platform.js | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/8f63b943/cordova-lib/src/cordova/platform.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/cordova/platform.js b/cordova-lib/src/cordova/platform.js
index bb64cc8..7890997 100644
--- a/cordova-lib/src/cordova/platform.js
+++ b/cordova-lib/src/cordova/platform.js
@@ -54,22 +54,26 @@ function getVersionFromScript(script, defaultValue) {
}
function add(hooks, projectRoot, targets, opts) {
+ var msg;
+ if ( !targets || !targets.length ) {
+ msg = 'No platform specified. Please specify a platform to add. ' +
+ 'See `' + cordova_util.binname + ' platform list`.';
+ return Q.reject(new CordovaError(msg));
+ }
var xml = cordova_util.projectConfig(projectRoot);
var cfg = new ConfigParser(xml);
- if (!targets || !targets.length) {
- return Q.reject(new CordovaError('No platform specified. Please specify a platform to add. See `'+cordova_util.binname+' platform list`.'));
- }
var config_json = config.read(projectRoot);
var platformsDir = path.join(projectRoot, 'platforms');
// The "platforms" dir is safe to delete, it's almost equivalent to
- // cordova platfrom rm <list of all platforms>
+ // cordova platform rm <list of all platforms>
if ( !fs.existsSync(platformsDir)) {
shell.mkdir('-p', platformsDir);
}
return hooks.fire('before_platform_add', opts)
.then(cordova_util.Q_chainmap(targets, function(t) {
+ // For each platform, download it and call its "create" script.
return lazy_load.based_on_config(projectRoot, t, opts)
.fail(function(err) {
throw new CordovaError('Unable to fetch platform ' + t + ': ' + err);
@@ -312,19 +316,19 @@ function supports(project_root, name) {
// required parameters
if (!name) return Q.reject(new CordovaError('requires a platform name parameter'));
- // check if platform exists
+ // Check if platform exists.
var platform = platforms[name];
if (!platform) {
return Q.reject(new CordovaError(util.format('"%s" platform does not exist', name)));
}
- // look up platform meta-data parser
+ // Look up platform meta-data parser.
var platformParser = platforms[name].parser;
if (!platformParser) {
return Q.reject(new Error(util.format('"%s" platform parser does not exist', name)));
}
- // check for platform support
+ // Check for platform support.
return platformParser.check_requirements(project_root);
}
[2/2] git commit: Allow "cordova platform add platform@version"
Posted by ka...@apache.org.
Allow "cordova platform add platform@version"
This only works with --usenpm for now.
E.g.:
cordova platform add ios@3.5.0 --usenpm
Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/4548595f
Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/4548595f
Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/4548595f
Branch: refs/heads/master
Commit: 4548595f1d5c40944d81098c6ea1b10d4e8d63aa
Parents: 8f63b94
Author: Mark Koudritsky <ka...@gmail.com>
Authored: Thu Jun 12 17:21:57 2014 -0400
Committer: Mark Koudritsky <ka...@gmail.com>
Committed: Thu Jun 12 17:21:57 2014 -0400
----------------------------------------------------------------------
cordova-lib/src/cordova/lazy_load.js | 14 +++++++++++--
cordova-lib/src/cordova/platform.js | 33 +++++++++++++++++++++++--------
2 files changed, 37 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/4548595f/cordova-lib/src/cordova/lazy_load.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/cordova/lazy_load.js b/cordova-lib/src/cordova/lazy_load.js
index 69be060..875364e 100644
--- a/cordova-lib/src/cordova/lazy_load.js
+++ b/cordova-lib/src/cordova/lazy_load.js
@@ -76,10 +76,20 @@ function cordova_git(platform) {
}
function cordova_npm(platform) {
- if (!(platform in platforms)) {
+ var version;
+ // Check if platform looks like platform@version
+ if (platform.indexOf('@') != -1) {
+ var parts = platform.split('@');
+ platform = parts[0];
+ version = parts[1];
+ }
+ if ( !(platform in platforms) ) {
return Q.reject(new Error('Cordova library "' + platform + '" not recognized.'));
}
- var pkg = 'cordova-' + platform + '@' + platforms[platform].version;
+ // In most cases platfrom does not specify a version and we use
+ // the hard-coded default version from platforms.js
+ version = version || platforms[platform].version;
+ var pkg = 'cordova-' + platform + '@' + version;
return Q.nfcall( npm.load, {cache: path.join(util.libDirectory, 'npm_cache') })
.then(function() {
return Q.ninvoke(npm.commands, 'cache', ['add', pkg]);
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/4548595f/cordova-lib/src/cordova/platform.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/cordova/platform.js b/cordova-lib/src/cordova/platform.js
index 7890997..374b223 100644
--- a/cordova-lib/src/cordova/platform.js
+++ b/cordova-lib/src/cordova/platform.js
@@ -79,12 +79,18 @@ function add(hooks, projectRoot, targets, opts) {
throw new CordovaError('Unable to fetch platform ' + t + ': ' + err);
})
.then(function(libDir) {
- var template = config_json.lib && config_json.lib[t] && config_json.lib[t].template || null;
+ var platform = t;
+ if (platform.indexOf('@') != -1) {
+ // If platform contains @version part, strip it.
+ var parts = platform.split('@');
+ platform = parts[0];
+ }
+ var template = config_json.lib && config_json.lib[platform] && config_json.lib[platform].template || null;
var copts = null;
if ('spawnoutput' in opts) {
copts = opts.spawnoutput;
}
- return call_into_create(t, projectRoot, cfg, libDir, template, copts);
+ return call_into_create(platform, projectRoot, cfg, libDir, template, copts);
});
}))
.then(function() {
@@ -267,21 +273,32 @@ function list(hooks, projectRoot) {
module.exports = platform;
function platform(command, targets, opts) {
var projectRoot = cordova_util.cdProjectRoot();
-
+ var msg;
var hooks = new hooker(projectRoot);
if (arguments.length === 0) command = 'ls';
+
+ // Verify that targets look like platforms. Examples:
+ // - android
+ // - android@3.5.0
if (targets) {
if (!(targets instanceof Array)) targets = [targets];
var err;
targets.forEach(function(t) {
- if (!(t in platforms)) {
- err = new CordovaError('Platform "' + t + '" not recognized as a core cordova platform. See `'+cordova_util.binname+' platform list`.');
- }
+ // Trim the @version part if it's there.
+ var p = t.split('@')[0];
+ // OK if it's one of known platform names.
+ if ( p in platforms ) return;
+ var msg = 'Platform "' + t +
+ '" not recognized as a core cordova platform. See `' +
+ cordova_util.binname + ' platform list`.'
+ ;
+ throw new CordovaError(msg);
+
});
- if (err) return Q.reject(err);
} else if (command == 'add' || command == 'rm') {
- return Q.reject(new CordovaError('You need to qualify `add` or `remove` with one or more platforms!'));
+ msg = 'You need to qualify `add` or `remove` with one or more platforms!';
+ return Q.reject(new CordovaError(msg));
}