diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-08-10 17:17:42 +0200 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-08-14 15:09:11 +0200 |
commit | 89757d717dd93b38ee5fe1d282b5946641fc6f29 (patch) | |
tree | 2475b33031c3fe6a88177d535f6fc56f14d1fcce /src/other_tools/utils/archive_ops.cpp | |
parent | 24ad2ce7d070ae684159b6445981017dd7a40f8a (diff) | |
download | justbuild-89757d717dd93b38ee5fe1d282b5946641fc6f29.tar.gz |
ArchiveOps: Allow lzip and lzma compression filters for tarballs
These are provided by the recently added liblzma external dependency.
Diffstat (limited to 'src/other_tools/utils/archive_ops.cpp')
-rw-r--r-- | src/other_tools/utils/archive_ops.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/other_tools/utils/archive_ops.cpp b/src/other_tools/utils/archive_ops.cpp index 7115680f..dd291036 100644 --- a/src/other_tools/utils/archive_ops.cpp +++ b/src/other_tools/utils/archive_ops.cpp @@ -59,6 +59,10 @@ auto enable_write_filter(archive* aw, ArchiveType type) -> bool { return (archive_write_add_filter_bzip2(aw) == ARCHIVE_OK); case ArchiveType::TarXz: return (archive_write_add_filter_xz(aw) == ARCHIVE_OK); + case ArchiveType::TarLz: + return (archive_write_add_filter_lzip(aw) == ARCHIVE_OK); + case ArchiveType::TarLzma: + return (archive_write_add_filter_lzma(aw) == ARCHIVE_OK); default: return false; } @@ -74,6 +78,10 @@ auto enable_read_filter(archive* ar, ArchiveType type) -> bool { return (archive_read_support_filter_bzip2(ar) == ARCHIVE_OK); case ArchiveType::TarXz: return (archive_read_support_filter_xz(ar) == ARCHIVE_OK); + case ArchiveType::TarLz: + return (archive_read_support_filter_lzip(ar) == ARCHIVE_OK); + case ArchiveType::TarLzma: + return (archive_read_support_filter_lzma(ar) == ARCHIVE_OK); case ArchiveType::TarAuto: return (archive_read_support_filter_all(ar) == ARCHIVE_OK); default: @@ -137,7 +145,9 @@ auto ArchiveOps::EnableWriteFormats(archive* aw, ArchiveType type) case ArchiveType::Tar: case ArchiveType::TarGz: case ArchiveType::TarBz2: - case ArchiveType::TarXz: { + case ArchiveType::TarXz: + case ArchiveType::TarLz: + case ArchiveType::TarLzma: { if ((archive_write_set_format_pax_restricted(aw) != ARCHIVE_OK) or not enable_write_filter(aw, type)) { return std::string("ArchiveOps: ") + @@ -164,7 +174,9 @@ auto ArchiveOps::EnableReadFormats(archive* ar, ArchiveType type) case ArchiveType::Tar: case ArchiveType::TarGz: case ArchiveType::TarBz2: - case ArchiveType::TarXz: { + case ArchiveType::TarXz: + case ArchiveType::TarLz: + case ArchiveType::TarLzma: { if ((archive_read_support_format_tar(ar) != ARCHIVE_OK) or not enable_read_filter(ar, type)) { return std::string("ArchiveOps: ") + |