blob: dcfb67bdf0b3740477bfc94fad40db4296b521de [file]
use server::archiver::disk::DiskArchiver;
use server::configs::server::DiskArchiverConfig;
use tokio::fs::create_dir;
use uuid::Uuid;
mod disk;
mod s3;
pub struct DiskArchiverSetup {
base_path: String,
archive_path: String,
archiver: DiskArchiver,
}
impl DiskArchiverSetup {
pub async fn init() -> DiskArchiverSetup {
let base_path = format!("test_local_data_{}", Uuid::now_v7().to_u128_le());
let archive_path = format!("{}/archive", base_path);
let config = DiskArchiverConfig {
path: archive_path.clone(),
};
let archiver = DiskArchiver::new(config);
create_dir(&base_path).await.unwrap();
Self {
base_path,
archive_path,
archiver,
}
}
pub fn archiver(&self) -> &DiskArchiver {
&self.archiver
}
}
impl Drop for DiskArchiverSetup {
fn drop(&mut self) {
std::fs::remove_dir_all(&self.base_path).unwrap();
}
}