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