From 619ac5f9d107088263d348a9009268e8170439ed Mon Sep 17 00:00:00 2001 From: Ross Andrews Date: Sat, 9 May 2026 18:14:57 -0500 Subject: [PATCH] phase 3a --- src/parsing.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/parsing.rs b/src/parsing.rs index 837a8d3..b29c33c 100644 --- a/src/parsing.rs +++ b/src/parsing.rs @@ -1,5 +1,7 @@ use std::ffi::OsString; use std::path::{Path, PathBuf}; +use flate2::Compression; +use flate2::write::GzEncoder; use clap::{Parser, Subcommand}; use crate::error::DrawerError; use crate::parsing::KeyType::*; @@ -108,10 +110,13 @@ impl DrawerOperation { fn perform_close(&self) -> Result<(), DrawerError> { let mut buf: Vec = Vec::new(); { - let mut archive = tar::Builder::new(&mut buf); + let gz = GzEncoder::new(&mut buf, Compression::default()); + let mut archive = tar::Builder::new(gz); archive.append_dir_all(".", &self.target_path) .map_err(|_| DrawerError::TarFailed)?; - archive.finish() + let gz = archive.into_inner() + .map_err(|_| DrawerError::TarFailed)?; + gz.finish() .map_err(|_| DrawerError::TarFailed)?; } std::fs::write(&self.drawer_file, &buf)