From 005ac05887d14d439a50274aed3edd4ab54af34a Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 27 Sep 2012 21:04:42 -0400
Subject: [PATCH] Automatically delete obsolete artifacts from ext
---
src/com/gitblit/build/Build.java | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/src/com/gitblit/build/Build.java b/src/com/gitblit/build/Build.java
index 316b2a6..5788b25 100644
--- a/src/com/gitblit/build/Build.java
+++ b/src/com/gitblit/build/Build.java
@@ -20,6 +20,7 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
+import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
@@ -379,6 +380,7 @@
if (targetFile.exists()) {
downloads.add(targetFile);
+ removeObsoleteArtifacts(mo, type, targetFile.getParentFile());
continue;
}
String expectedSHA1 = mo.getSHA1(jar);
@@ -454,9 +456,41 @@
throw new RuntimeException("Error writing to file " + targetFile, e);
}
downloads.add(targetFile);
+
+ removeObsoleteArtifacts(mo, type, targetFile.getParentFile());
}
return downloads;
}
+
+ private static void removeObsoleteArtifacts(final MavenObject mo, final BuildType type, File folder) {
+ File [] removals = folder.listFiles(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ String n = name.toLowerCase();
+ String dep = mo.artifact.toLowerCase();
+ if (n.startsWith(dep)) {
+ String suffix = "-" + mo.version;
+ if (type.equals(BuildType.COMPILETIME)) {
+ suffix += "-sources.jar";
+ } else {
+ suffix += ".jar";
+ }
+ if (!n.endsWith(suffix)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ });
+
+ // delete any matches
+ if (removals != null) {
+ for (File file : removals) {
+ System.out.println("deleting " + file);
+ file.delete();
+ }
+ }
+ }
private static void updateDownload(float progress, File file) {
updateProgress(progress, "d/l: " + file.getName());
--
Gitblit v1.9.1