diff options
author | axtloss <axtlos@getcryst.al> | 2023-05-24 22:48:05 +0200 |
---|---|---|
committer | axtloss <axtlos@getcryst.al> | 2023-05-24 22:48:05 +0200 |
commit | 8ce1ed49dd5a8a13feb3eca8f36ca3ac0cc80a12 (patch) | |
tree | 5af31f2a04cba28bda6a6b018944da4d10934973 /src/main/java/io/github/jshipit/BlobDownloader.java | |
parent | 63146274f8cbe759742aa18413054515c0f81583 (diff) | |
download | jshipit-8ce1ed49dd5a8a13feb3eca8f36ca3ac0cc80a12.tar.gz jshipit-8ce1ed49dd5a8a13feb3eca8f36ca3ac0cc80a12.tar.bz2 |
Allow creating containers
Diffstat (limited to '')
-rw-r--r-- | src/main/java/io/github/jshipit/BlobDownloader.java | 25 |
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); |