private static void deCompressTgz()

in sdk/host/src/main/java/org/apache/teaclave/javasdk/host/ExtractLibrary.java [87:117]


    private static void deCompressTgz(String fullPath, String destDir) throws IOException {
        TarArchiveEntry entry;
        TarArchiveEntry[] subEntries;
        File subEntryFile = null;
        try (FileInputStream fis = new FileInputStream(fullPath);
             GZIPInputStream gis = new GZIPInputStream(fis);
             TarArchiveInputStream tis = new TarArchiveInputStream(gis)) {
            while ((entry = tis.getNextTarEntry()) != null) {
                StringBuilder entryFileName = new StringBuilder();
                entryFileName.append(destDir).append(File.separator).append(entry.getName());
                File entryFile = new File(entryFileName.toString());
                if (entry.isDirectory()) {
                    if (!entryFile.exists()) {
                        entryFile.mkdir();
                    }
                    subEntries = entry.getDirectoryEntries();
                    for (TarArchiveEntry subEntry : subEntries) {
                        try (OutputStream out = new FileOutputStream(subEntryFile)) {
                            subEntryFile = new File(entryFileName + File.separator + subEntry.getName());
                            IOUtils.copy(tis, out);
                        }
                    }
                } else {
                    checkFileExists(entryFile);
                    OutputStream out = new FileOutputStream(entryFile);
                    IOUtils.copy(tis, out);
                    out.close();
                }
            }
        }
    }