aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/jshipit/BlobDownloader.java
diff options
context:
space:
mode:
authoraxtloss <axtlos@getcryst.al>2023-05-24 22:48:05 +0200
committeraxtloss <axtlos@getcryst.al>2023-05-24 22:48:05 +0200
commit8ce1ed49dd5a8a13feb3eca8f36ca3ac0cc80a12 (patch)
tree5af31f2a04cba28bda6a6b018944da4d10934973 /src/main/java/io/github/jshipit/BlobDownloader.java
parent63146274f8cbe759742aa18413054515c0f81583 (diff)
downloadjshipit-8ce1ed49dd5a8a13feb3eca8f36ca3ac0cc80a12.tar.gz
jshipit-8ce1ed49dd5a8a13feb3eca8f36ca3ac0cc80a12.tar.bz2
Allow creating containers
Diffstat (limited to 'src/main/java/io/github/jshipit/BlobDownloader.java')
-rw-r--r--src/main/java/io/github/jshipit/BlobDownloader.java25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/main/java/io/github/jshipit/BlobDownloader.java b/src/main/java/io/github/jshipit/BlobDownloader.java
index 91f126e..3aafec4 100644
--- a/src/main/java/io/github/jshipit/BlobDownloader.java
+++ b/src/main/java/io/github/jshipit/BlobDownloader.java
@@ -6,6 +6,8 @@ import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
import java.io.*;
import java.net.*;
+import java.nio.file.Files;
+import java.nio.file.Path;
public class BlobDownloader extends Thread {
@@ -14,13 +16,15 @@ public class BlobDownloader extends Thread {
private final String[][] headers;
private final String tmpdir;
private final boolean extract;
+ private final String renameTo;
- public BlobDownloader(String url, String digest, String[][] headers, String tmpdir, boolean extract) {
+ public BlobDownloader(String url, String digest, String[][] headers, String tmpdir, boolean extract, String renameTo) {
this.url = url;
this.digest = digest;
this.headers = headers;
this.tmpdir = tmpdir;
this.extract = extract;
+ this.renameTo = renameTo;
}
public void run() {
@@ -75,14 +79,27 @@ public class BlobDownloader extends Thread {
e.printStackTrace();
}
- File extracted = new File(tmpdir + "/" + digest.replace("sha256:", ""));
- if (extracted.exists()) {
- extracted.delete();
+ if (this.renameTo == null) {
+ return;
+ }
+
+ Path rename = new File(renameTo).toPath();
+ Path current = new File(tmpdir + "/" + digest.replace("sha256:", "")+".tar.gz").toPath();
+ try {
+ Files.move(current, rename);
+ } catch (IOException e) {
+ System.out.println("Failed to rename file "+digest);
+ e.printStackTrace();
}
if (!extract) {
return;
}
+
+ File extracted = new File(tmpdir + "/" + digest.replace("sha256:", ""));
+ if (extracted.exists()) {
+ extracted.delete();
+ }
TarManager tarManager = new TarManager();
try {
tarManager.untar(tmpdir + "/" + digest.replace("sha256:", "") + ".tar.gz", extracted);