cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a...@apache.org
Subject [01/16] git commit: adding force action, handling configuration errors and correcting indentation
Date Wed, 03 Apr 2013 03:08:57 GMT
Updated Branches:
  refs/heads/master 0a7b3e3da -> 8a00a0b94


adding force action, handling configuration errors and correcting indentation


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

Branch: refs/heads/master
Commit: 64da57b4d50cb1d335942c4dc2d8212f484fef72
Parents: 16f3b24
Author: Anis Kadri <anis@apache.org>
Authored: Mon Apr 1 15:22:23 2013 -0700
Committer: Anis Kadri <anis@apache.org>
Committed: Mon Apr 1 15:22:23 2013 -0700

----------------------------------------------------------------------
 platforms/ios.js |  100 +++++++++++++++++++++++++++---------------------
 1 files changed, 56 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/64da57b4/platforms/ios.js
----------------------------------------------------------------------
diff --git a/platforms/ios.js b/platforms/ios.js
index 42d51a5..2f221c3 100644
--- a/platforms/ios.js
+++ b/platforms/ios.js
@@ -72,10 +72,14 @@ exports.handlePlugin = function (action, project_dir, plugin_dir, plugin_et,
var
     var projectPListPath = project_plists[0];
     
     // collision detection 
-    if(action == "install" && pluginInstalled(plugin_et, config_file)) {
-        throw "Plugin "+plugin_id+" already installed"
-    } else if(action == "uninstall" && !pluginInstalled(plugin_et, config_file))
{
-        throw "Plugin "+plugin_id+" not installed"
+    if(action.match(/force-/) == null) {
+      if(action == "install" && pluginInstalled(plugin_et, config_file)) {
+          throw "Plugin "+plugin_id+" already installed"
+      } else if(action == "uninstall" && !pluginInstalled(plugin_et, config_file))
{
+          throw "Plugin "+plugin_id+" not installed"
+      }
+    } else {
+      action = action.replace('force-', '');
     }
     
     var assets = plugin_et.findall('./asset'),
@@ -165,7 +169,7 @@ exports.handlePlugin = function (action, project_dir, plugin_dir, plugin_et,
var
             weak = framework.attrib['weak'];
 
         if (action == 'install') {
-			var opt = { weak: (weak && weak.toLowerCase() == 'true') };
+            var opt = { weak: (weak && weak.toLowerCase() == 'true') };
             xcodeproj.addFramework(src, opt);
         } else {
             xcodeproj.removeFramework(src);
@@ -176,7 +180,15 @@ exports.handlePlugin = function (action, project_dir, plugin_dir, plugin_et,
var
     fs.writeFileSync(pbxPath, xcodeproj.writeSync());
 
     // add plugin and whitelisted hosts
-    updateConfig(action, config_file, plugin_et);
+    try {
+      updateConfig(action, config_file, plugin_et);
+    } catch(e) {
+      throw {
+        name: "ConfigurationError",
+        level: "ERROR",
+        message: "Error updating configuration: "+e.message,
+      }
+    }
     
     if (action == 'install') {
         variables['PACKAGE_NAME'] = plist.parseFileSync(projectPListPath).CFBundleIdentifier;
@@ -269,19 +281,19 @@ function updateConfigXml(action, config_path, plugin_et) {
     var hosts = plugin_et.findall('./access'),
         platformTag = plugin_et.find('./platform[@name="ios"]'), // FIXME: can probably do
better than this
         plistEle = platformTag.find('./plugins-plist'), // use this for older that have plugins-plist
-		configChanges = getConfigChanges(platformTag),
-	    base_config_path = path.basename(config_path);
+        configChanges = getConfigChanges(platformTag),
+        base_config_path = path.basename(config_path);
 
     // edit configuration files
     var xmlDoc = xml_helpers.parseElementtreeSync(config_path),
         output,
-		pListOnly = plistEle;
-
-	if (configChanges[path.basename(config_path)]) {	
-		configChanges[path.basename(config_path)].forEach(function (val) {
-			if (val.find("plugin")) pListOnly = false;
-		});
-	}
+		    pListOnly = plistEle;
+    
+    if (configChanges[path.basename(config_path)]) {	
+      configChanges[path.basename(config_path)].forEach(function (val) {
+        if (val.find("plugin")) pListOnly = false;
+      });
+    }
 
     if (pListOnly) {
         // if the plugin supports the old plugins-plist element only
@@ -299,35 +311,35 @@ function updateConfigXml(action, config_path, plugin_et) {
         }
     }
 
-	// add whitelist hosts
-	root = et.Element("config-file");
-	root.attrib['parent'] = '.'
-    hosts.forEach(function (tag) {
-		root.append(tag);
-	});
-
-	if (root.len()) {
-		(configChanges[path.basename(config_path)]) ?
-        	configChanges[path.basename(config_path)].push(root) :
-        	configChanges[path.basename(config_path)] = [root];
-	}
-
-	if (configChanges[path.basename(config_path)]) {
-
-	    configChanges[base_config_path].forEach(function (configNode) {
-	        var selector = configNode.attrib["parent"],
-	            children = configNode.findall('*');
-	        if( action == 'install') {
-	            if (!xml_helpers.graftXML(xmlDoc, children, selector)) {
-	                throw new Error('failed to add children to ' + selector + ' in ' + config_path);
-	            }
-	        } else {
-	            if (!xml_helpers.pruneXML(xmlDoc, children, selector)) {
-	                throw new Error('failed to remove children from ', selector + ' in ' + config_path);
-	            }
-	        }
-		});
-	}
+    // add whitelist hosts
+    root = et.Element("config-file");
+    root.attrib['parent'] = '.'
+      hosts.forEach(function (tag) {
+      root.append(tag);
+    });
+
+    if (root.len()) {
+      (configChanges[path.basename(config_path)]) ?
+            configChanges[path.basename(config_path)].push(root) :
+            configChanges[path.basename(config_path)] = [root];
+    }
+
+    if (configChanges[path.basename(config_path)]) {
+
+        configChanges[base_config_path].forEach(function (configNode) {
+            var selector = configNode.attrib["parent"],
+                children = configNode.findall('*');
+            if( action == 'install') {
+                if (!xml_helpers.graftXML(xmlDoc, children, selector)) {
+                    throw new Error('failed to add children to ' + selector + ' in ' + config_path);
+                }
+            } else {
+                if (!xml_helpers.pruneXML(xmlDoc, children, selector)) {
+                    throw new Error('failed to remove children from ' + selector + ' in '
+ config_path);
+                }
+            }
+      });
+    }
 
     output = xmlDoc.write({indent: 4});
     fs.writeFileSync(config_path, output);


Mime
View raw message