From 3ffc64f1290f52760746dd74e46815e94c32f372 Mon Sep 17 00:00:00 2001
From: Pierre HUBERT <pierre.git@communiquons.org>
Date: Thu, 29 May 2025 14:22:09 +0200
Subject: [PATCH] Can compress QCow2

---
 virtweb_backend/src/utils/file_disks_utils.rs | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/virtweb_backend/src/utils/file_disks_utils.rs b/virtweb_backend/src/utils/file_disks_utils.rs
index 7d4f3a6..57cdcc7 100644
--- a/virtweb_backend/src/utils/file_disks_utils.rs
+++ b/virtweb_backend/src/utils/file_disks_utils.rs
@@ -168,6 +168,16 @@ impl DiskFileInfo {
                 cmd
             }
 
+            // Compress QCow2
+            (DiskFileFormat::QCow2 { .. }, DiskFileFormat::CompressedQCow2) => {
+                let mut cmd = Command::new(constants::GZIP_PROGRAM);
+                cmd.arg("--keep")
+                    .arg("--to-stdout")
+                    .arg(&self.file_path)
+                    .stdout(File::create(&temp_file)?);
+                cmd
+            }
+
             // Dumb copy of file
             (a, b) if a == b => {
                 let mut cmd = Command::new(constants::COPY_PROGRAM);