use crate::{ExtractError, ExtractResult};
use rattler_conda_types::package::CondaArchiveType;
use std::fs::File;
use std::path::Path;
pub fn extract_tar_bz2(archive: &Path, destination: &Path) -> Result<ExtractResult, ExtractError> {
let file = File::open(archive)?;
crate::read::extract_tar_bz2(file, destination)
}
pub fn extract_conda(archive: &Path, destination: &Path) -> Result<ExtractResult, ExtractError> {
let file = File::open(archive)?;
crate::read::extract_conda_via_streaming(file, destination)
}
pub fn extract(archive: &Path, destination: &Path) -> Result<ExtractResult, ExtractError> {
match CondaArchiveType::try_from(archive).ok_or(ExtractError::UnsupportedArchiveType)? {
CondaArchiveType::TarBz2 => extract_tar_bz2(archive, destination),
CondaArchiveType::Conda => extract_conda(archive, destination),
}
}