about summary refs log tree commit diff
path: root/src/tools/rust-installer
diff options
context:
space:
mode:
authoronur-ozkan <work@onurozkan.dev>2024-02-22 01:08:49 +0300
committeronur-ozkan <work@onurozkan.dev>2024-02-22 01:35:57 +0300
commit3197aee8b31faa200081143c9d353119400759df (patch)
treebeda1f5961f1ab71a3b0476e085ca363bf56781e /src/tools/rust-installer
parentd7bd9cd469ff6871420007f091ef52fc32d2ca99 (diff)
support `no-op` compression profile in rust-installer
Signed-off-by: onur-ozkan <work@onurozkan.dev>
Diffstat (limited to 'src/tools/rust-installer')
-rw-r--r--src/tools/rust-installer/src/compression.rs11
-rw-r--r--src/tools/rust-installer/src/main.rs2
-rw-r--r--src/tools/rust-installer/src/tarballer.rs4
3 files changed, 15 insertions, 2 deletions
diff --git a/src/tools/rust-installer/src/compression.rs b/src/tools/rust-installer/src/compression.rs
index 902b2ec6907..4e840dbfbb4 100644
--- a/src/tools/rust-installer/src/compression.rs
+++ b/src/tools/rust-installer/src/compression.rs
@@ -1,11 +1,12 @@
 use anyhow::{Context, Error};
 use flate2::{read::GzDecoder, write::GzEncoder};
 use rayon::prelude::*;
-use std::{convert::TryFrom, fmt, io::Read, io::Write, path::Path, str::FromStr};
+use std::{fmt, io::Read, io::Write, path::Path, str::FromStr};
 use xz2::{read::XzDecoder, write::XzEncoder};
 
 #[derive(Default, Debug, Copy, Clone)]
 pub enum CompressionProfile {
+    NoOp,
     Fast,
     #[default]
     Balanced,
@@ -20,6 +21,7 @@ impl FromStr for CompressionProfile {
             "fast" => Self::Fast,
             "balanced" => Self::Balanced,
             "best" => Self::Best,
+            "no-op" => Self::NoOp,
             other => anyhow::bail!("invalid compression profile: {other}"),
         })
     }
@@ -31,6 +33,7 @@ impl fmt::Display for CompressionProfile {
             CompressionProfile::Fast => f.write_str("fast"),
             CompressionProfile::Balanced => f.write_str("balanced"),
             CompressionProfile::Best => f.write_str("best"),
+            CompressionProfile::NoOp => f.write_str("no-op"),
         }
     }
 }
@@ -78,10 +81,16 @@ impl CompressionFormat {
                     CompressionProfile::Fast => flate2::Compression::fast(),
                     CompressionProfile::Balanced => flate2::Compression::new(6),
                     CompressionProfile::Best => flate2::Compression::best(),
+                    CompressionProfile::NoOp => panic!(
+                        "compression profile 'no-op' should not call `CompressionFormat::encode`."
+                    ),
                 },
             )),
             CompressionFormat::Xz => {
                 let encoder = match profile {
+                    CompressionProfile::NoOp => panic!(
+                        "compression profile 'no-op' should not call `CompressionFormat::encode`."
+                    ),
                     CompressionProfile::Fast => {
                         xz2::stream::MtStreamBuilder::new().threads(6).preset(1).encoder().unwrap()
                     }
diff --git a/src/tools/rust-installer/src/main.rs b/src/tools/rust-installer/src/main.rs
index 99acecdd43c..efb4c5bcb83 100644
--- a/src/tools/rust-installer/src/main.rs
+++ b/src/tools/rust-installer/src/main.rs
@@ -1,5 +1,5 @@
 use anyhow::{Context, Result};
-use clap::{self, Parser};
+use clap::Parser;
 
 #[derive(Parser)]
 struct CommandLine {
diff --git a/src/tools/rust-installer/src/tarballer.rs b/src/tools/rust-installer/src/tarballer.rs
index 7572dc6dcf8..e5a925b2cbf 100644
--- a/src/tools/rust-installer/src/tarballer.rs
+++ b/src/tools/rust-installer/src/tarballer.rs
@@ -38,6 +38,10 @@ actor! {
 impl Tarballer {
     /// Generates the actual tarballs
     pub fn run(self) -> Result<()> {
+        if let CompressionProfile::NoOp = self.compression_profile {
+            return Ok(());
+        }
+
         let tarball_name = self.output.clone() + ".tar";
         let encoder = CombinedEncoder::new(
             self.compression_formats