You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by fi...@apache.org on 2013/01/10 23:44:51 UTC

[2/2] git commit: Fixes CB-2075: cordova-cli has trouble with projects under svn revision control. Added a "deleteSvnFolders" utility method to help with this.

Updated Branches:
  refs/heads/master 4f9eebe86 -> 161446a61
Updated Tags:  refs/tags/2.3.4 [created] 161446a61


Fixes CB-2075: cordova-cli has trouble with projects under svn revision control. Added a "deleteSvnFolders" utility method to help with this.


Project: http://git-wip-us.apache.org/repos/asf/cordova-cli/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-cli/commit/161446a6
Tree: http://git-wip-us.apache.org/repos/asf/cordova-cli/tree/161446a6
Diff: http://git-wip-us.apache.org/repos/asf/cordova-cli/diff/161446a6

Branch: refs/heads/master
Commit: 161446a616044d53ff9bc1b597b1ab346553c5bf
Parents: e71881f
Author: Fil Maj <ma...@gmail.com>
Authored: Thu Jan 10 14:47:03 2013 -0800
Committer: Fil Maj <ma...@gmail.com>
Committed: Thu Jan 10 14:47:03 2013 -0800

----------------------------------------------------------------------
 package.json                      |    2 +-
 src/hooker.js                     |    4 +++-
 src/metadata/android_parser.js    |   11 +++++++++--
 src/metadata/blackberry_parser.js |    2 ++
 src/metadata/ios_parser.js        |    5 ++++-
 src/util.js                       |   12 ++++++++++++
 6 files changed, 31 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/161446a6/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 990e043..9e5c25b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "cordova",
-  "version": "2.3.3",
+  "version": "2.3.4",
   "preferGlobal": "true",
   "description": "Cordova command line interface tool",
   "main": "cordova",

http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/161446a6/src/hooker.js
----------------------------------------------------------------------
diff --git a/src/hooker.js b/src/hooker.js
index d7b2e0b..e78d19d 100644
--- a/src/hooker.js
+++ b/src/hooker.js
@@ -21,7 +21,9 @@ module.exports.prototype = {
         // Fire script-based hooks
         var contents = fs.readdirSync(dir);
         contents.forEach(function(script) {
-            var status = shell.exec(path.join(dir, script));
+            var fullpath = path.join(dir, script);
+            if (fs.statSync(fullpath).isDirectory()) return; // skip directories if they're in there.
+            var status = shell.exec(fullpath);
             if (status.code != 0) throw 'Script "' + path.basename(script) + '"' + 'in the ' + hook + ' hook exited with non-zero status code. Aborting.';
         });
         return true;

http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/161446a6/src/metadata/android_parser.js
----------------------------------------------------------------------
diff --git a/src/metadata/android_parser.js b/src/metadata/android_parser.js
index 90b06b8..6723ff1 100644
--- a/src/metadata/android_parser.js
+++ b/src/metadata/android_parser.js
@@ -33,7 +33,7 @@ module.exports.prototype = {
         manifest.getroot().attrib.package = pkg;
         fs.writeFileSync(this.manifest, manifest.write({indent: 4}), 'utf-8');
         var orig_pkgDir = path.join(this.path, 'src', path.join.apply(null, orig_pkg.split('.')));
-        var orig_java_class = fs.readdirSync(orig_pkgDir)[0];
+        var orig_java_class = fs.readdirSync(orig_pkgDir).filter(function(f) {return f.indexOf('.svn') == -1;})[0];
         var pkgDir = path.join(this.path, 'src', path.join.apply(null, pkg.split('.')));
         shell.mkdir('-p', pkgDir);
         var orig_javs = path.join(orig_pkgDir, orig_java_class);
@@ -61,9 +61,16 @@ module.exports.prototype = {
         var projectRoot = util.isCordova(process.cwd());
         var www = path.join(projectRoot, 'www');
         var platformWww = path.join(this.path, 'assets');
+        // copy over all app www assets
         shell.cp('-rf', www, platformWww);
+        platformWww = path.join(platformWww, 'www');
+
+        // write out android lib's cordova.js
         var jsPath = path.join(util.libDirectory, 'cordova-android', 'framework', 'assets', 'js', 'cordova.android.js');
-        fs.writeFileSync(path.join(platformWww, 'www', 'cordova.js'), fs.readFileSync(jsPath, 'utf-8'), 'utf-8');
+        fs.writeFileSync(path.join(platformWww, 'cordova.js'), fs.readFileSync(jsPath, 'utf-8'), 'utf-8');
+
+        // delete any .svn folders copied over
+        util.deleteSvnFolders(platformWww);
     },
     update_project:function(cfg) {
         this.update_from_config(cfg);

http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/161446a6/src/metadata/blackberry_parser.js
----------------------------------------------------------------------
diff --git a/src/metadata/blackberry_parser.js b/src/metadata/blackberry_parser.js
index cafae97..5581cff 100644
--- a/src/metadata/blackberry_parser.js
+++ b/src/metadata/blackberry_parser.js
@@ -85,6 +85,8 @@ module.exports.prototype = {
         var contents = fs.readFileSync(index, 'utf-8');
         contents = contents.replace(/<script type="text\/javascript" src="cordova\.js"><\/script>/, '<script type="text/javascript" src="js/webworks.js"></script><script type="text/javascript" src="cordova.js"></script>');
         fs.writeFileSync(index, contents, 'utf-8');
+
+        util.deleteSvnFolders(platformWww);
     },
     write_project_properties:function() {
         // TODO: eventually support all blackberry sub-platforms

http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/161446a6/src/metadata/ios_parser.js
----------------------------------------------------------------------
diff --git a/src/metadata/ios_parser.js b/src/metadata/ios_parser.js
index 61b23e2..bda23c1 100644
--- a/src/metadata/ios_parser.js
+++ b/src/metadata/ios_parser.js
@@ -68,12 +68,15 @@ module.exports.prototype = {
 
     update_www:function() {
         var projectRoot = util.isCordova(process.cwd());
+        // copy over app www assets
         var www = path.join(projectRoot, 'www');
         shell.cp('-rf', www, this.path);
-        //shell.cp('-f', path.join(www, 'config.xml'), path.join(this.cordovaproj, 'config.xml'));
         var project_www = path.join(this.path, 'www');
+        // write out proper cordova.js
+        // TODO: this seems bad and brittle..
         var js = fs.readdirSync(project_www).filter(function(e) { return e.match(/\.js$/i); })[0];
         shell.mv('-f', path.join(project_www, js), path.join(project_www, 'cordova.js'));
+        util.deleteSvnFolders(project_www);
     },
     update_project:function(cfg, callback) {
         var self = this;

http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/161446a6/src/util.js
----------------------------------------------------------------------
diff --git a/src/util.js b/src/util.js
index 43583c3..ca2e7f0 100644
--- a/src/util.js
+++ b/src/util.js
@@ -120,5 +120,17 @@ module.exports = {
         } else {
             module.exports.extractCordovaLib(callback);
         }
+    },
+    // Recursively deletes .svn folders from a target path
+    deleteSvnFolders:function(dir) {
+        var contents = fs.readdirSync(dir);
+        contents.forEach(function(entry) {
+            var fullpath = path.join(dir, entry);
+            if (fs.statSync(fullpath).isDirectory()) {
+                if (entry == '.svn') {
+                    shell.rm('-rf', fullpath);
+                } else module.exports.deleteSvnFolders(fullpath);
+            }
+        });
     }
 };