Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Kaegi2008-11-10 19:27:24 +0000
committerSimon Kaegi2008-11-10 19:27:24 +0000
commit04e29098c0b244b86a9e71bdba81dd9a00b7491a (patch)
tree915000417fa1d206a29d0b456b70d2d9637351cb /bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/actions/CleanupzipAction.java
parent669c6762ffbdffe4c1e42f67344c42a025a255fd (diff)
downloadrt.equinox.p2-04e29098c0b244b86a9e71bdba81dd9a00b7491a.tar.gz
rt.equinox.p2-04e29098c0b244b86a9e71bdba81dd9a00b7491a.tar.xz
rt.equinox.p2-04e29098c0b244b86a9e71bdba81dd9a00b7491a.zip
Bug 252685 [touchpoints] Cleanout redundant actions
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/actions/CleanupzipAction.java')
-rw-r--r--bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/actions/CleanupzipAction.java56
1 files changed, 52 insertions, 4 deletions
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/actions/CleanupzipAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/actions/CleanupzipAction.java
index 7373df20c..6e1059ecd 100644
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/actions/CleanupzipAction.java
+++ b/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/actions/CleanupzipAction.java
@@ -10,17 +10,65 @@
*******************************************************************************/
package org.eclipse.equinox.internal.p2.touchpoint.natives.actions;
-import java.util.Map;
+import java.io.File;
+import java.util.*;
import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.touchpoint.natives.NativeTouchpoint;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.equinox.internal.p2.touchpoint.natives.Messages;
+import org.eclipse.equinox.internal.p2.touchpoint.natives.Util;
+import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
+import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
+import org.eclipse.osgi.util.NLS;
public class CleanupzipAction extends ProvisioningAction {
+
+ public static final String ACTION_CLEANUPZIP = "cleanupzip"; //$NON-NLS-1$
+
public IStatus execute(Map parameters) {
- return NativeTouchpoint.cleanupzip(parameters);
+ return cleanupzip(parameters);
}
public IStatus undo(Map parameters) {
- return NativeTouchpoint.unzip(parameters);
+ return UnzipAction.unzip(parameters);
+ }
+
+ public static IStatus cleanupzip(Map parameters) {
+ String source = (String) parameters.get(ActionConstants.PARM_SOURCE);
+ if (source == null)
+ return Util.createError(NLS.bind(Messages.param_not_set, ActionConstants.PARM_SOURCE, ACTION_CLEANUPZIP));
+ String target = (String) parameters.get(ActionConstants.PARM_TARGET);
+ if (target == null)
+ return Util.createError(NLS.bind(Messages.param_not_set, ActionConstants.PARM_TARGET, ACTION_CLEANUPZIP));
+
+ IInstallableUnit iu = (IInstallableUnit) parameters.get(ActionConstants.PARM_IU);
+ IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
+
+ String unzipped = profile.getInstallableUnitProperty(iu, "unzipped" + ActionConstants.PIPE + source + ActionConstants.PIPE + target); //$NON-NLS-1$
+
+ if (unzipped == null)
+ return Status.OK_STATUS;
+
+ StringTokenizer tokenizer = new StringTokenizer(unzipped, ActionConstants.PIPE);
+ List directories = new ArrayList();
+ while (tokenizer.hasMoreTokens()) {
+ String fileName = tokenizer.nextToken();
+ File file = new File(fileName);
+ if (!file.exists())
+ continue;
+
+ if (file.isDirectory())
+ directories.add(file);
+ else
+ file.delete();
+ }
+
+ for (Iterator it = directories.iterator(); it.hasNext();) {
+ File directory = (File) it.next();
+ directory.delete();
+ }
+
+ return Status.OK_STATUS;
}
+
} \ No newline at end of file

Back to the top