You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by lo...@apache.org on 2013/05/07 17:18:41 UTC
[04/30] git commit: added support for --remove
added support for --remove
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugman/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugman/commit/c646049f
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugman/tree/c646049f
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugman/diff/c646049f
Branch: refs/heads/future
Commit: c646049f42f17f934cce218155f95e627570986c
Parents: f66a171
Author: Jesse MacFadyen <pu...@gmail.com>
Authored: Fri Apr 12 17:05:20 2013 -0700
Committer: Anis Kadri <an...@apache.org>
Committed: Mon Apr 22 16:28:05 2013 -0700
----------------------------------------------------------------------
platforms/wp7.js | 79 +++++++++++++++++++++++------
test/plugins/ChildBrowser/plugin.xml | 1 +
2 files changed, 65 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/c646049f/platforms/wp7.js
----------------------------------------------------------------------
diff --git a/platforms/wp7.js b/platforms/wp7.js
index 2889f87..1fec63d 100644
--- a/platforms/wp7.js
+++ b/platforms/wp7.js
@@ -28,8 +28,20 @@ var fs = require('fs'),
glob = require('glob'),
shell = require('shelljs'),
et = require('elementtree'),
+ xml_helpers = require('../util/xml-helpers'),
assetsDir = 'www'; // relative path to project's web assets
+var unix_projPath, // for use with glob
+ project_file, // first csproj returned by glob unix_projPath
+ projPath, // full path to the project file, including file name
+ assets, // assets node et in root ./asset
+ platformTag, // wp7 platform node et
+ sourceFiles, // ./source-file inside platform
+ hosts, // ./access inside root
+ projectChanges; // <config-file target=".csproj" parent=".">, inside platform
+
+
+
function copyFileSync(srcPath, destPath) {
var stats = fs.statSync(srcPath);
@@ -53,16 +65,19 @@ function copyFileSync(srcPath, destPath) {
}
}
-function install(project_dir, plugin_dir, plugin_et, variables) {
+function initPaths(project_dir, plugin_dir, plugin_et, variables) {
- var unix_projPath = project_dir.split("\\").join("/");
- var project_file = glob.sync('*.csproj',{nocase:true,cwd:unix_projPath})[0];
- var projPath = path.join(unix_projPath,project_file);
- var assets = plugin_et.findall('./asset');
- var platformTag = plugin_et.find('./platform[@name="wp7"]');
- var sourceFiles = platformTag.findall('./source-file');
- var projectChanges = platformTag.findall('./config-file[@target=".csproj"]');
+ unix_projPath = project_dir.split("\\").join("/");
+ project_file = glob.sync('*.csproj',{nocase:true,cwd:unix_projPath})[0];
+ projPath = path.join(unix_projPath,project_file);
+ assets = plugin_et.findall('./asset');
+ platformTag = plugin_et.find('./platform[@name="wp7"]');
+ sourceFiles = platformTag.findall('./source-file');
+ projectChanges = platformTag.findall('./config-file[@target=".csproj"]');
+ hosts = plugin_et.findall('./access');
+}
+function install(project_dir, plugin_dir, plugin_et, variables) {
// move asset files
assets && assets.forEach(function (asset) {
@@ -86,29 +101,63 @@ function install(project_dir, plugin_dir, plugin_et, variables) {
// child is the configNode child that we will insert into csproj
var child = configNode.find('*');
-
var newNodeText = new et.ElementTree(child).write({xml_declaration:false});
- newNodeText = newNodeText.split("
").join("\n").split("
").join("\r");
+
+ newNodeText = newNodeText.split("
").join("\n").split("
").join("\r");
+
// insert text right before closing tag
- var newDocStr = docStr.replace("</Project>",newNodeText + "\n</Project>");
+ var newDocStr = docStr.replace("</Project>",newNodeText + "\n\r</Project>");
+
// save it, and get out
fs.writeFileSync(projPath, newDocStr);
});
}
function uninstall(project_dir, plugin_dir, plugin_et, variables) {
- // uninstall would be : shell.rm('-rf', targetPath);
+
+ assets && assets.forEach(function (asset) {
+ var targetPath = path.resolve(project_dir, assetsDir, asset.attrib['target']);
+ shell.rm('-rf', targetPath);
+ });
+
+ sourceFiles && sourceFiles.forEach(function (sourceFile) {
+ var destDir = path.resolve(project_dir, sourceFile.attrib['target-dir']);
+ var destFilePath = path.resolve(destDir, path.basename(sourceFile.attrib['src']));
+ shell.rm('-rf', destFilePath);
+ });
+
+ et.register_namespace("csproj", "http://schemas.microsoft.com/developer/msbuild/2003");
+
+ projectChanges && projectChanges.forEach(function (configNode) {
+
+ var docStr = fs.readFileSync(projPath,"utf8");
+
+ // child is the configNode child that we will insert into csproj
+ var child = configNode.find('*');
+ var newNodeText = new et.ElementTree(child).write({xml_declaration:false});
+
+ newNodeText = newNodeText.split("
").join("\n").split("
").join("\r");
+
+ // insert text right before closing tag
+ var splitString = docStr.split(newNodeText);
+ console.log("split length = " + splitString.length);
+ var newDocStr = splitString.join("");
+
+ // save it, and get out
+ fs.writeFileSync(projPath, newDocStr);
+ });
}
exports.handlePlugin = function (action, project_dir, plugin_dir, plugin_et, variables) {
-
+ console.log("action = " + action);
switch(action) {
case 'install' :
- //console.log('installing');
+ initPaths(project_dir, plugin_dir, plugin_et, variables);
install(project_dir, plugin_dir, plugin_et, variables);
break;
case 'uninstall' :
- console.log('uninstalling');
+ initPaths(project_dir, plugin_dir, plugin_et, variables);
+ uninstall(project_dir, plugin_dir, plugin_et, variables);
break;
default :
throw 'error unknown action';
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/c646049f/test/plugins/ChildBrowser/plugin.xml
----------------------------------------------------------------------
diff --git a/test/plugins/ChildBrowser/plugin.xml b/test/plugins/ChildBrowser/plugin.xml
index e166870..6998ec4 100644
--- a/test/plugins/ChildBrowser/plugin.xml
+++ b/test/plugins/ChildBrowser/plugin.xml
@@ -118,6 +118,7 @@
<ItemGroup>
<Compile Include="Plugins\\ChildBrowserCommand.cs"/>
<Content Include="www\\childbrowser.js" />
+ <Content Include="www\\childbrowser\\**"/>
</ItemGroup>
</config-file>