Extract zstd files too

This commit is contained in:
Henry Mercer
2025-12-17 14:56:46 +00:00
parent 7673a2de65
commit ac6c41b910
4 changed files with 79 additions and 3 deletions

View File

@@ -127938,6 +127938,24 @@ async function scanArchiveFile(archivePath, relativeArchivePath, extractDir, log
await exec.exec("tar", ["-xzf", archivePath, "-C", tempExtractDir], {
silent: true
});
} else if (fileName.endsWith(".tar.zst")) {
logger.debug(`Extracting tar.zst file: ${archivePath}`);
await exec.exec(
"tar",
["--zstd", "-xf", archivePath, "-C", tempExtractDir],
{
silent: true
}
);
} else if (fileName.endsWith(".zst")) {
logger.debug(`Extracting zst file: ${archivePath}`);
const outputFile = path5.join(
tempExtractDir,
path5.basename(archivePath, ".zst")
);
await exec.exec("zstd", ["-d", archivePath, "-o", outputFile], {
silent: true
});
} else if (fileName.endsWith(".gz")) {
logger.debug(`Extracting gz file: ${archivePath}`);
const outputFile = path5.join(
@@ -127980,7 +127998,7 @@ async function scanFile(fullPath, relativePath, extractDir, logger, depth = 0) {
findings: []
};
const fileName = path5.basename(fullPath).toLowerCase();
const isArchive = fileName.endsWith(".zip") || fileName.endsWith(".tar.gz") || fileName.endsWith(".tgz") || fileName.endsWith(".gz");
const isArchive = fileName.endsWith(".zip") || fileName.endsWith(".tar.gz") || fileName.endsWith(".tgz") || fileName.endsWith(".tar.zst") || fileName.endsWith(".zst") || fileName.endsWith(".gz");
if (isArchive) {
const archiveResult = await scanArchiveFile(
fullPath,

View File

@@ -132580,6 +132580,24 @@ async function scanArchiveFile(archivePath, relativeArchivePath, extractDir, log
await exec.exec("tar", ["-xzf", archivePath, "-C", tempExtractDir], {
silent: true
});
} else if (fileName.endsWith(".tar.zst")) {
logger.debug(`Extracting tar.zst file: ${archivePath}`);
await exec.exec(
"tar",
["--zstd", "-xf", archivePath, "-C", tempExtractDir],
{
silent: true
}
);
} else if (fileName.endsWith(".zst")) {
logger.debug(`Extracting zst file: ${archivePath}`);
const outputFile = path11.join(
tempExtractDir,
path11.basename(archivePath, ".zst")
);
await exec.exec("zstd", ["-d", archivePath, "-o", outputFile], {
silent: true
});
} else if (fileName.endsWith(".gz")) {
logger.debug(`Extracting gz file: ${archivePath}`);
const outputFile = path11.join(
@@ -132622,7 +132640,7 @@ async function scanFile(fullPath, relativePath, extractDir, logger, depth = 0) {
findings: []
};
const fileName = path11.basename(fullPath).toLowerCase();
const isArchive = fileName.endsWith(".zip") || fileName.endsWith(".tar.gz") || fileName.endsWith(".tgz") || fileName.endsWith(".gz");
const isArchive = fileName.endsWith(".zip") || fileName.endsWith(".tar.gz") || fileName.endsWith(".tgz") || fileName.endsWith(".tar.zst") || fileName.endsWith(".zst") || fileName.endsWith(".gz");
if (isArchive) {
const archiveResult = await scanArchiveFile(
fullPath,

View File

@@ -126873,6 +126873,24 @@ async function scanArchiveFile(archivePath, relativeArchivePath, extractDir, log
await exec.exec("tar", ["-xzf", archivePath, "-C", tempExtractDir], {
silent: true
});
} else if (fileName.endsWith(".tar.zst")) {
logger.debug(`Extracting tar.zst file: ${archivePath}`);
await exec.exec(
"tar",
["--zstd", "-xf", archivePath, "-C", tempExtractDir],
{
silent: true
}
);
} else if (fileName.endsWith(".zst")) {
logger.debug(`Extracting zst file: ${archivePath}`);
const outputFile = path.join(
tempExtractDir,
path.basename(archivePath, ".zst")
);
await exec.exec("zstd", ["-d", archivePath, "-o", outputFile], {
silent: true
});
} else if (fileName.endsWith(".gz")) {
logger.debug(`Extracting gz file: ${archivePath}`);
const outputFile = path.join(
@@ -126915,7 +126933,7 @@ async function scanFile(fullPath, relativePath, extractDir, logger, depth = 0) {
findings: []
};
const fileName = path.basename(fullPath).toLowerCase();
const isArchive = fileName.endsWith(".zip") || fileName.endsWith(".tar.gz") || fileName.endsWith(".tgz") || fileName.endsWith(".gz");
const isArchive = fileName.endsWith(".zip") || fileName.endsWith(".tar.gz") || fileName.endsWith(".tgz") || fileName.endsWith(".tar.zst") || fileName.endsWith(".zst") || fileName.endsWith(".gz");
if (isArchive) {
const archiveResult = await scanArchiveFile(
fullPath,