Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'p2/org.eclipse.cdt.p2/src/org/eclipse/cdt/internal/p2')
-rw-r--r--p2/org.eclipse.cdt.p2/src/org/eclipse/cdt/internal/p2/touchpoint/natives/actions/CleanupUntarAction.java32
-rw-r--r--p2/org.eclipse.cdt.p2/src/org/eclipse/cdt/internal/p2/touchpoint/natives/actions/UntarAction.java1
2 files changed, 31 insertions, 2 deletions
diff --git a/p2/org.eclipse.cdt.p2/src/org/eclipse/cdt/internal/p2/touchpoint/natives/actions/CleanupUntarAction.java b/p2/org.eclipse.cdt.p2/src/org/eclipse/cdt/internal/p2/touchpoint/natives/actions/CleanupUntarAction.java
index d8c108fd2eb..e32c81678e4 100644
--- a/p2/org.eclipse.cdt.p2/src/org/eclipse/cdt/internal/p2/touchpoint/natives/actions/CleanupUntarAction.java
+++ b/p2/org.eclipse.cdt.p2/src/org/eclipse/cdt/internal/p2/touchpoint/natives/actions/CleanupUntarAction.java
@@ -10,11 +10,19 @@
*******************************************************************************/
package org.eclipse.cdt.internal.p2.touchpoint.natives.actions;
+import java.io.File;
import java.util.Map;
+import java.util.StringTokenizer;
import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.touchpoint.natives.actions.CleanupzipAction;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.equinox.internal.p2.engine.Profile;
+import org.eclipse.equinox.internal.p2.touchpoint.natives.Messages;
+import org.eclipse.equinox.internal.p2.touchpoint.natives.Util;
+import org.eclipse.equinox.internal.p2.touchpoint.natives.actions.ActionConstants;
import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
+import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
+import org.eclipse.osgi.util.NLS;
/**
* Cleanup an untared artifact.
@@ -26,6 +34,8 @@ import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
*/
public class CleanupUntarAction extends ProvisioningAction {
+ private static final String ACTION_NAME = "cleanupuntar";
+
@Override
public IStatus execute(Map parameters) {
return cleanup(parameters);
@@ -37,6 +47,24 @@ public class CleanupUntarAction extends ProvisioningAction {
}
public static IStatus cleanup(Map parameters) {
- return CleanupzipAction.cleanupzip(parameters, false);
+ String source = (String)parameters.get(ActionConstants.PARM_SOURCE);
+ if (source == null)
+ return Util.createError(NLS.bind(Messages.param_not_set, ActionConstants.PARM_SOURCE, ACTION_NAME));
+
+ String target = (String)parameters.get(ActionConstants.PARM_TARGET);
+ if (target == null)
+ return Util.createError(NLS.bind(Messages.param_not_set, ActionConstants.PARM_TARGET, ACTION_NAME));
+
+ IInstallableUnit iu = (IInstallableUnit) parameters.get(ActionConstants.PARM_IU);
+ Profile profile = (Profile) parameters.get(ActionConstants.PARM_PROFILE);
+
+ String fileList = profile.getInstallableUnitProperty(iu, "unzipped" + ActionConstants.PIPE + source + ActionConstants.PIPE + target);
+ StringTokenizer tokenizer = new StringTokenizer(fileList, ActionConstants.PIPE);
+ while (tokenizer.hasMoreTokens()) {
+ String filename = tokenizer.nextToken();
+ for (File file = new File(filename); file.delete(); file = file.getParentFile());
+ }
+
+ return Status.OK_STATUS;
}
}
diff --git a/p2/org.eclipse.cdt.p2/src/org/eclipse/cdt/internal/p2/touchpoint/natives/actions/UntarAction.java b/p2/org.eclipse.cdt.p2/src/org/eclipse/cdt/internal/p2/touchpoint/natives/actions/UntarAction.java
index 127bb94ebfc..ceeb7f9b3ca 100644
--- a/p2/org.eclipse.cdt.p2/src/org/eclipse/cdt/internal/p2/touchpoint/natives/actions/UntarAction.java
+++ b/p2/org.eclipse.cdt.p2/src/org/eclipse/cdt/internal/p2/touchpoint/natives/actions/UntarAction.java
@@ -176,4 +176,5 @@ public class UntarAction extends ProvisioningAction {
}
return null;
}
+
}

Back to the top