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();
}
}
}
}