// Copyright (c) 2019, QuantStack and Mamba Contributors
//
// Distributed under the terms of the BSD 3-Clause License.
//
// The full license is in the file LICENSE, distributed with this software.
#ifndef MAMBA_CORE_PACKAGE_HANDLING_HPP
#define MAMBA_CORE_PACKAGE_HANDLING_HPP
#include <string>
#include <system_error>
#include <vector>
#include "mamba_fs.hpp"
namespace mamba
{
enum compression_algorithm
{
none,
bzip2,
zip,
zstd
};
void create_archive(
const fs::u8path& directory,
const fs::u8path& destination,
compression_algorithm,
int compression_level,
int compression_threads,
bool (*filter)(const fs::u8path&)
);
void create_package(
const fs::u8path& directory,
const fs::u8path& out_file,
int compression_threads,
int compression_level
);
void extract_archive(const fs::u8path& file, const fs::u8path& destination);
void extract_conda(
const fs::u8path& file,
const fs::u8path& dest_dir,
const std::vector<std::string>& parts = { "info", "pkg" }
);
void extract(const fs::u8path& file, const fs::u8path& destination);
fs::u8path extract(const fs::u8path& file);
void extract_subproc(const fs::u8path& file, const fs::u8path& dest);
bool transmute(
const fs::u8path& pkg_file,
const fs::u8path& target,
int compression_level,
int compression_threads
);
bool validate(const fs::u8path& pkg_folder);
} // namespace mamba
#endif // MAMBA_PACKAGE_HANDLING_HPP