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));
     }