You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by pu...@apache.org on 2013/07/30 01:36:28 UTC

[08/12] git commit: cleanup WIP adding windows8

cleanup WIP adding windows8


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

Branch: refs/heads/master
Commit: 29bff8b0374632e8a328ebc25585ace5b98fb415
Parents: c1dabf9
Author: purplecabbage <pu...@gmail.com>
Authored: Fri Jul 26 17:41:51 2013 -0700
Committer: purplecabbage <pu...@gmail.com>
Committed: Mon Jul 29 16:34:06 2013 -0700

----------------------------------------------------------------------
 main.js                   |  2 +-
 src/install.js            |  4 ++++
 src/platforms/windows8.js |  1 +
 src/prepare.js            | 28 ++++++++++++++++++++++++++-
 src/util/action-stack.js  | 44 ++++++++++++++++++++++++++++--------------
 src/util/w8jsproj.js      |  2 ++
 6 files changed, 65 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/29bff8b0/main.js
----------------------------------------------------------------------
diff --git a/main.js b/main.js
index 470db89..88fd7f2 100755
--- a/main.js
+++ b/main.js
@@ -26,7 +26,7 @@ var path = require('path')
     , plugins = require('./src/util/plugins')
     , plugman = require('./plugman');
 
-var known_opts = { 'platform' : [ 'ios', 'android', 'blackberry10', 'wp7', 'wp8' ]
+var known_opts = { 'platform' : [ 'ios', 'android', 'blackberry10', 'wp7', 'wp8' , 'windows8' ]
         , 'project' : path
         , 'plugin' : [String, path, url]
         , 'version' : Boolean

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/29bff8b0/src/install.js
----------------------------------------------------------------------
diff --git a/src/install.js b/src/install.js
index 5b818ab..c3e125f 100644
--- a/src/install.js
+++ b/src/install.js
@@ -97,6 +97,10 @@ function runInstall(actions, platform, project_dir, plugin_dir, plugins_dir, opt
     // checking engine
     // will there be a case for multiple engine support?
     var versionPath = path.join(project_dir, 'cordova', 'version');
+    // windows8, wp7, wp8 all use a .bat file
+    if (!fs.existsSync(versionPath)) {
+        versionPath += ".bat";
+    }
     if (fs.existsSync(versionPath)) {
         // need to rethink this so I don't have to chmod anything
         fs.chmodSync(versionPath, '755');

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/29bff8b0/src/platforms/windows8.js
----------------------------------------------------------------------
diff --git a/src/platforms/windows8.js b/src/platforms/windows8.js
index f543ba2..beb5e40 100644
--- a/src/platforms/windows8.js
+++ b/src/platforms/windows8.js
@@ -25,6 +25,7 @@ var common = require('./common'),
 
 
 module.exports = {
+    platformName:"windows8",
     InvalidProjectPathError:'does not appear to be a Windows Store JS project (no .jsproj file)',
     www_dir:function(project_dir) {
         return path.join(project_dir, 'www');

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/29bff8b0/src/prepare.js
----------------------------------------------------------------------
diff --git a/src/prepare.js b/src/prepare.js
index 3939d04..a59a55d 100644
--- a/src/prepare.js
+++ b/src/prepare.js
@@ -23,6 +23,7 @@ var platform_modules = require('./platforms'),
     xml_helpers     = require('./util/xml-helpers'),
     wp7             = require('./platforms/wp7'),
     wp8             = require('./platforms/wp8'),
+    windows8             = require('./platforms/windows8'),
     fs              = require('fs'),
     shell           = require('shelljs'),
     util            = require('util'),
@@ -90,6 +91,27 @@ module.exports = function handlePrepare(project_dir, platform, plugins_dir) {
             }
         }
     }
+    else if(platform == "windows8") {
+        wp_csproj = windows8.parseProjectFile(project_dir);
+        var item_groups = wp_csproj.xml.findall('ItemGroup');
+        for (var i = 0, l = item_groups.length; i < l; i++) {
+            var group = item_groups[i];
+            var files = group.findall('Content');
+            for (var j = 0, k = files.length; j < k; j++) {
+                var file = files[j];
+                if (file.attrib.Include.substr(0,11) == "www\\plugins" || file.attrib.Include == "www\\cordova_plugins.js") {
+                    // remove file reference
+                    group.remove(0, file);
+                    // remove ItemGroup if empty
+                    var new_group = group.findall('Content');
+                    if(new_group.length < 1) {
+                        wp_csproj.xml.getroot().remove(0, group);
+                    }
+                }
+            }
+        }
+
+    }
 
     platform_json = config_changes.get_platform_json(plugins_dir, platform);
     // This array holds all the metadata for each module and ends up in cordova_plugins.json
@@ -135,7 +157,7 @@ module.exports = function handlePrepare(project_dir, platform, plugins_dir) {
                 var scriptContent = fs.readFileSync(path.join(pluginDir, module.attrib.src), 'utf-8');
                 scriptContent = 'cordova.define("' + moduleName + '", function(require, exports, module) {' + scriptContent + '});\n';
                 fs.writeFileSync(path.join(platformPluginsDir, plugin_id, module.attrib.src), scriptContent, 'utf-8');
-                if(platform == 'wp7' || platform == 'wp8') {
+                if(platform == 'wp7' || platform == 'wp8' || platform == "windows8") {
                     wp_csproj.addSourceFile(path.join('www', 'plugins', plugin_id, module.attrib.src));
                 }
     
@@ -177,4 +199,8 @@ module.exports = function handlePrepare(project_dir, platform, plugins_dir) {
         wp_csproj.addSourceFile (path.join('www', 'cordova_plugins.js'));
         wp_csproj.write();
     }
+    else if(platform == "window8") {
+        wp_csproj.addSourceFile (path.join('www', 'cordova_plugins.js'));
+        wp_csproj.write();
+    }
 };

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/29bff8b0/src/util/action-stack.js
----------------------------------------------------------------------
diff --git a/src/util/action-stack.js b/src/util/action-stack.js
index 5eef1e6..ed5ec2c 100644
--- a/src/util/action-stack.js
+++ b/src/util/action-stack.js
@@ -1,6 +1,7 @@
 var ios = require('../platforms/ios'),
     wp7 = require('../platforms/wp7'),
     wp8 = require('../platforms/wp8'),
+    windows8 = require('../platforms/windows8'),
     fs = require('fs');
 
 function ActionStack() {
@@ -28,23 +29,34 @@ ActionStack.prototype = {
         require('../../plugman').emit('log', 'Beginning processing of action stack for ' + platform + ' project...');
         var project_files;
         // parse platform-specific project files once
-        if (platform == 'ios') {
-            require('../../plugman').emit('log', 'Parsing iOS project files...');
-            project_files = ios.parseIOSProjectFiles(project_dir);
-        }
-        if (platform == 'wp7') {
-            require('../../plugman').emit('log', 'Parsing WP7 project files...');
-            project_files = wp7.parseProjectFile(project_dir);
+        require('../../plugman').emit('log', 'Parsing ' + platform + ' project files...');
+        switch(platform) {
+            case "ios": 
+                require('../../plugman').emit('log', 'Parsing iOS project files...');
+                project_files = ios.parseIOSProjectFiles(project_dir);
+                break;
+            case "wp7": 
+                require('../../plugman').emit('log', 'Parsing WP7 project files...');
+                project_files = wp7.parseProjectFile(project_dir);
+                break;
+            case "wp8": 
+                require('../../plugman').emit('log', 'Parsing WP8 project files...');
+                project_files = wp8.parseProjectFile(project_dir);
+                break;
+            case "windows8": 
+                require('../../plugman').emit('log', 'Parsing Windows8 project files...');
+                project_files = windows8.parseProjectFile(project_dir);
+                break;
         }
-        if (platform == 'wp8') {
-            require('../../plugman').emit('log', 'Parsing WP8 project files...');
-            project_files = wp8.parseProjectFile(project_dir);
-        } 
+
         while(this.stack.length) {
             var action = this.stack.shift();
             var handler = action.handler.run;
             var action_params = action.handler.params;
-            if (platform == 'ios' || platform == 'wp7' || platform == 'wp8') action_params.push(project_files);
+            if(['ios','wp7','wp8','windows8'].indexOf(platform) > -1) {
+                action_params.push(project_files);
+            }
+
             try {
                 handler.apply(null, action_params);
             } catch(e) {
@@ -56,7 +68,11 @@ ActionStack.prototype = {
                     var undo = this.completed.shift();
                     var revert = undo.reverter.run;
                     var revert_params = undo.reverter.params;
-                    if (platform == 'ios' || platform == 'wp7' || platform == 'wp8') revert_params.push(project_files);
+
+                    if(['ios','wp7','wp8','windows8'].indexOf(platform) > -1) {
+                        revert_params.push(project_files);
+                    }
+
                     try {
                         revert.apply(null, revert_params);
                     } catch(err) {
@@ -76,7 +92,7 @@ ActionStack.prototype = {
             require('../../plugman').emit('log', 'Writing out iOS pbxproj file...');
             fs.writeFileSync(project_files.pbx, project_files.xcode.writeSync());
         }
-        if (platform == 'wp7' || platform == 'wp8') {
+        if (platform == 'wp7' || platform == 'wp8' || platform == "windows8") {
             require('../../plugman').emit('log', 'Writing out ' + platform + ' project files...');
             project_files.write();
         }

http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/29bff8b0/src/util/w8jsproj.js
----------------------------------------------------------------------
diff --git a/src/util/w8jsproj.js b/src/util/w8jsproj.js
index 9d2e075..dd15aad 100644
--- a/src/util/w8jsproj.js
+++ b/src/util/w8jsproj.js
@@ -15,6 +15,8 @@ function jsproj(location) {
 }
 
 jsproj.prototype = {
+    location:null,
+    xml:null,
     write:function() {
         fs.writeFileSync(this.location, this.xml.write({indent:4}), 'utf-8');
     },