From f320ca32420ba2cb2f30ca2e738af97b219f5cb1 Mon Sep 17 00:00:00 2001 From: Taku Kodma <79110363+risu729@users.noreply.github.com> Date: Sun, 14 Jun 2026 03:05:14 +1000 Subject: [PATCH] refactor(aqua): stop canonicalizing archive format aliases --- crates/aqua-registry/src/types.rs | 49 +++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/crates/aqua-registry/src/types.rs b/crates/aqua-registry/src/types.rs index 55a50a73dd..da876bea62 100644 --- a/crates/aqua-registry/src/types.rs +++ b/crates/aqua-registry/src/types.rs @@ -473,12 +473,7 @@ impl AquaPackage { for format in formats { if asset_name.ends_with(&format!(".{format}")) { - return match format { - "tgz" => "tar.gz", - "txz" => "tar.xz", - "tbz2" | "tbz" => "tar.bz2", - _ => format, - }; + return format; } } "raw" @@ -573,12 +568,7 @@ impl AquaPackage { }; self.detect_format(&asset) } else { - match self.format.as_str() { - "tgz" => "tar.gz", - "txz" => "tar.xz", - "tbz2" | "tbz" => "tar.bz2", - format => format, - } + &self.format }; Ok(format) } @@ -1609,6 +1599,41 @@ packages: assert_eq!(format, "7z"); } + #[test] + fn test_format_detects_literal_aqua_aliases() { + let cases = [ + ("tool-{{.Version}}.tgz", "tgz"), + ("tool-{{.Version}}.txz", "txz"), + ("tool-{{.Version}}.tbz", "tbz"), + ("tool-{{.Version}}.tbz2", "tbz2"), + ]; + + for (asset, expected) in cases { + let pkg = AquaPackage { + asset: asset.to_string(), + ..Default::default() + }; + + let format = pkg.format("1.0.0", "linux", "amd64").unwrap(); + + assert_eq!(format, expected); + } + } + + #[test] + fn test_format_preserves_explicit_aqua_aliases() { + for format in ["tgz", "txz", "tbz", "tbz2"] { + let pkg = AquaPackage { + format: format.to_string(), + ..Default::default() + }; + + let detected = pkg.format("1.0.0", "linux", "amd64").unwrap(); + + assert_eq!(detected, format); + } + } + #[test] fn test_asset_completion_strips_version_from_filename_only() { let pkg = AquaPackage {