aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/jshipit/TarManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/jshipit/TarManager.java')
-rw-r--r--src/main/java/io/github/jshipit/TarManager.java74
1 files changed, 0 insertions, 74 deletions
diff --git a/src/main/java/io/github/jshipit/TarManager.java b/src/main/java/io/github/jshipit/TarManager.java
deleted file mode 100644
index 41577a9..0000000
--- a/src/main/java/io/github/jshipit/TarManager.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package io.github.jshipit;
-
-import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
-import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
-import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
-import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
-import org.apache.commons.compress.utils.IOUtils;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-public class TarManager {
-
- public TarManager() {
-
- }
-
- public void tar(String name, File... files) throws IOException {
- try (TarArchiveOutputStream out = getTarArchiveOutputStream(name)){
- for (File file : files){
- addToArchive(out, file, ".");
- }
- }
- }
-
- public void untar(String in, File out) throws IOException {
- SysUtils chmod = new SysUtils();
- try (TarArchiveInputStream fin = new TarArchiveInputStream(new GzipCompressorInputStream(new FileInputStream(in)))){
- TarArchiveEntry entry;
- while ((entry = fin.getNextTarEntry()) != null) {
- if (entry.isDirectory()) {
- continue;
- }
- File curfile = new File(out, entry.getName());
- File parent = curfile.getParentFile();
- if (!parent.exists()) {
- parent.mkdirs();
- }
- chmod.chmod(curfile.getPath(), entry.getMode());
- IOUtils.copy(fin, new FileOutputStream(curfile));
- }
- }
- }
-
- private TarArchiveOutputStream getTarArchiveOutputStream(String name) throws IOException {
- TarArchiveOutputStream taos = new TarArchiveOutputStream(new FileOutputStream(name));
- taos.setBigNumberMode(TarArchiveOutputStream.BIGNUMBER_STAR);
- taos.setLongFileMode(TarArchiveOutputStream.LONGFILE_GNU);
- taos.setAddPaxHeadersForNonAsciiNames(true);
- return taos;
- }
-
- private void addToArchive(TarArchiveOutputStream out, File file, String dir) throws IOException {
- String entry = dir + File.separator + file.getName();
- if (file.isFile()){
- out.putArchiveEntry(new TarArchiveEntry(file, entry));
- try (FileInputStream in = new FileInputStream(file)){
- IOUtils.copy(in, out);
- }
- out.closeArchiveEntry();
- } else if (file.isDirectory()) {
- File[] children = file.listFiles();
- if (children != null){
- for (File child : children){
- addToArchive(out, child, entry);
- }
- }
- } else {
- System.out.println(file.getName() + " is not supported");
- }
- }
-} \ No newline at end of file