From 9f6d62761f0ab74e1ed4d3e64ca92560771df9a3 Mon Sep 17 00:00:00 2001 From: Duddino Date: Sun, 6 Oct 2024 14:07:56 +0200 Subject: [PATCH] Refactor decompress_archive and fix tests --- src-tauri/src/pivx/mod.rs | 15 +++++++++++++-- src-tauri/src/pivx/test.rs | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/pivx/mod.rs b/src-tauri/src/pivx/mod.rs index dfac73a..cf691d0 100644 --- a/src-tauri/src/pivx/mod.rs +++ b/src-tauri/src/pivx/mod.rs @@ -12,10 +12,14 @@ use crate::binary::BinaryDefinition; pub struct PIVXDefinition; -impl BinaryDefinition for PIVXDefinition { - fn decompress_archive(&self, dir: &Path) -> Result<(), PIVXErrors> { +impl PIVXDefinition { + fn inner_decompress_archive(&self, dir: &Path) -> Result<(), PIVXErrors> { let mut tarball = Archive::new(GzDecoder::new(File::open(dir.join("pivxd.tar.gz"))?)); tarball.unpack(dir)?; + Ok(()) + } + + fn inner_install_params(&self, dir: &Path) -> Result<(), PIVXErrors> { let pivx_dir = dir.join("pivx-5.6.1"); let script_path = pivx_dir.join("install-params.sh"); let mut handle = Command::new(script_path) @@ -28,6 +32,13 @@ impl BinaryDefinition for PIVXDefinition { false => Err(PIVXErrors::FetchParamsFailed), } } +} + +impl BinaryDefinition for PIVXDefinition { + fn decompress_archive(&self, dir: &Path) -> Result<(), PIVXErrors> { + self.inner_decompress_archive(dir)?; + self.inner_install_params(dir) + } fn get_url(&self) -> &str { #[cfg(target_os = "linux")] diff --git a/src-tauri/src/pivx/test.rs b/src-tauri/src/pivx/test.rs index e5a0046..b08918f 100644 --- a/src-tauri/src/pivx/test.rs +++ b/src-tauri/src/pivx/test.rs @@ -24,7 +24,7 @@ mod pivx_fetch { ]; file.write_all(&data)?; let pivx_def = PIVXDefinition; - pivx_def.decompress_archive(&data_dir)?; + pivx_def.inner_decompress_archive(&data_dir)?; let mut dirs: Vec<_> = std::fs::read_dir(data_dir)? .filter_map(|d| {