You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ag...@apache.org on 2014/10/21 19:20:33 UTC

git commit: CB-7820 Make cordova platfrom restore not stop if a platforms fails to restore

Repository: cordova-lib
Updated Branches:
  refs/heads/master 272fad91e -> 64b236af5


CB-7820 Make cordova platfrom restore not stop if a platforms fails to restore

handles restoration for each platform separately so that if one fails installation for
others continues. Also makes a change on how the host is checked to allow such errors
not to completely halt the execution.

close #106


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

Branch: refs/heads/master
Commit: 64b236af58ac85bde0ddaec96463fc25a12dab7e
Parents: 272fad9
Author: Gorkem Ercan <go...@gmail.com>
Authored: Sat Oct 18 18:27:43 2014 -0400
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Tue Oct 21 13:19:20 2014 -0400

----------------------------------------------------------------------
 cordova-lib/src/cordova/platform.js | 10 +++++-----
 cordova-lib/src/cordova/restore.js  | 16 +++++++++++++++-
 2 files changed, 20 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/64b236af/cordova-lib/src/cordova/platform.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/cordova/platform.js b/cordova-lib/src/cordova/platform.js
index 1a8ab3c..85eda0a 100644
--- a/cordova-lib/src/cordova/platform.js
+++ b/cordova-lib/src/cordova/platform.js
@@ -54,13 +54,13 @@ function add(hooksRunner, projectRoot, targets, opts) {
         return Q.reject(new CordovaError(msg));
     }
 
-    targets.forEach(function(platform) {
-        if ( !hostSupports(platform) ) {
-            msg = 'Applications for platform ' + platform +
+    for(var i= 0 ; i< targets.length; i++){
+        if ( !hostSupports(targets[i]) ) {
+            msg = 'Applications for platform ' + targets[i] +
                   ' can not be built on this OS - ' + process.platform + '.';
-            throw new CordovaError(msg);
+            return Q.reject( new CordovaError(msg));
         }
-    });
+    }
 
     var xml = cordova_util.projectConfig(projectRoot);
     var cfg = new ConfigParser(xml);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/64b236af/cordova-lib/src/cordova/restore.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/cordova/restore.js b/cordova-lib/src/cordova/restore.js
index 39d2ee9..eff7055 100644
--- a/cordova-lib/src/cordova/restore.js
+++ b/cordova-lib/src/cordova/restore.js
@@ -54,7 +54,21 @@ function installPlatformsFromConfigXML(cfg){
     if(!targets || !targets.length  ){
         return Q.all('No platforms are listed in config.xml to restore');
     }
-    return platform('add', targets);
+    
+    // Run platform add for all the platforms seperately 
+    // so that failure on one does not affect the other.
+    var promises = targets.map(function(target){
+        return platform('add',target);
+    });
+    return Q.allSettled(promises).then(
+        function (results) {
+            for(var i =0; i<results.length; i++){
+                //log the rejections otherwise they are lost
+                if(results[i].state ==='rejected'){
+                    events.emit('log', results[i].reason.message);
+                }
+            }
+        });
 }
 
 //returns a Promise


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org