You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by an...@apache.org on 2013/05/07 03:20:34 UTC
[3/4] git commit: fixing uninstall reversion
fixing uninstall reversion
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugman/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugman/commit/e621a853
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugman/tree/e621a853
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugman/diff/e621a853
Branch: refs/heads/master
Commit: e621a8534483f1f68e1a9c5406701e06a60b8d8a
Parents: 4be5ea0
Author: Anis Kadri <an...@apache.org>
Authored: Mon May 6 18:20:04 2013 -0700
Committer: Anis Kadri <an...@apache.org>
Committed: Mon May 6 18:20:04 2013 -0700
----------------------------------------------------------------------
src/uninstall.js | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/e621a853/src/uninstall.js
----------------------------------------------------------------------
diff --git a/src/uninstall.js b/src/uninstall.js
index e071934..49fc1c7 100644
--- a/src/uninstall.js
+++ b/src/uninstall.js
@@ -1,7 +1,6 @@
var path = require('path'),
fs = require('fs'),
et = require('elementtree'),
- platform_modules = require('./platforms'),
config_changes = require('./util/config-changes');
module.exports = function uninstallPlugin(platform, project_dir, name, plugins_dir, cli_variables, callback) {
@@ -42,6 +41,7 @@ function runUninstall(platform, project_dir, plugin_dir, plugins_dir, cli_variab
return;
}
+ var platform_modules = require('./platforms');
// parse plugin.xml into transactions
var handler = platform_modules[platform];
var txs = [];
@@ -85,15 +85,23 @@ function runUninstall(platform, project_dir, plugin_dir, plugins_dir, cli_variab
handler.uninstall(txs, plugin_id, project_dir, plugin_dir, function(err) {
if (err) {
// FAIL
- // TODO revert assets here too
+ var issue = '';
+ try {
+ for(var i = 0, j = uninstalledAssets.length ; i < j ; i++) {
+ var src = uninstalledAssets[i].attrib['src'],
+ target = uninstalledAssets[i].attrib['target'];
+ common.copyFile(plugin_dir, src, handler.www_dir(project_dir), target);
+ }
+ } catch(err2) {
+ issue += 'Could not revert assets' + err2.stack + '\n';
+ }
if (err. transactions) {
handler.install(err.transactions.executed, plugin_id, project_dir, plugin_dir, cli_variables, function(superr) {
- var issue = '';
if (superr) {
// Even reversion failed. super fail.
- issue = 'Uninstall failed, then reversion of uninstallation failed. Sorry :(. Uninstalation issue: ' + err.stack + ', reversion issue: ' + superr.stack;
+ issue += 'Uninstall failed, then reversion of uninstallation failed. Sorry :(. Uninstalation issue: ' + err.stack + ', reversion issue: ' + superr.stack;
} else {
- issue = 'Uninstall failed, plugin reversion successful so you should be good to go. Uninstallation issue: ' + err.stack;
+ issue += 'Uninstall failed, plugin reversion successful so you should be good to go. Uninstallation issue: ' + err.stack;
}
var error = new Error(issue);
if (callback) callback(error);