diff --git a/e2e/backend/test_aqua b/e2e/backend/test_aqua index f3c520fd25..a9dc7125be 100644 --- a/e2e/backend/test_aqua +++ b/e2e/backend/test_aqua @@ -12,6 +12,7 @@ test aqua:helm/helm@3.16.3 "helm version" "v3.16.3" test aqua:crate-ci/typos@1.27.3 "typos --version" "typos-cli 1.27.3" test aqua:biomejs/biome@2.0.0 "biome --version" "Version: 2.0.0" test aqua:biomejs/biome@@biomejs/biome@2.0.0 "biome --version" "Version: 2.0.0" +test aqua:gruntwork-io/terragrunt@0.77.22 "terragrunt --version" "terragrunt version v0.77.22" assert_contains "MISE_USE_VERSIONS_HOST=0 mise ls-remote aqua:sharkdp/hyperfine" "1.9.0 1.10.0" diff --git a/registry.toml b/registry.toml index 7ee518fc3a..cf702472ef 100644 --- a/registry.toml +++ b/registry.toml @@ -2563,6 +2563,7 @@ terragrunt.backends = [ "aqua:gruntwork-io/terragrunt", "asdf:gruntwork-io/asdf-terragrunt" ] +terragrunt.test = ["terragrunt --version", "terragrunt version v{{version}}"] terramate.description = "Open-source Infrastructure as Code (IaC) orchestration platform: GitOps workflows, orchestration, code generation, observability, drift detection, asset management, policies, Slack notifications, and more. Integrates with Terraform, OpenTofu, Terragrunt, Kubernetes, GitHub Actions, GitLab CI/CD, BitBucket Pipelines, and any other CI/CD platform" terramate.backends = [ "aqua:terramate-io/terramate", diff --git a/src/backend/aqua.rs b/src/backend/aqua.rs index 6f2a344c28..78fd89b733 100644 --- a/src/backend/aqua.rs +++ b/src/backend/aqua.rs @@ -107,21 +107,23 @@ impl Backend for AquaBackend { } validate(&pkg)?; // try v-prefixed version first because most aqua packages use v-prefixed versions - let url = match self + let (url, v) = match self .fetch_url(&pkg, v_prefixed.as_ref().unwrap_or(&v)) .await { - Ok(url) => url, - Err(err) if v_prefixed.is_some() => self - .fetch_url(&pkg, &v) - .await - .map_err(|e| err.wrap_err(e))?, + Ok(url) => (url, v_prefixed.as_ref().unwrap_or(&v)), + Err(err) if v_prefixed.is_some() => ( + self.fetch_url(&pkg, &v) + .await + .map_err(|e| err.wrap_err(e))?, + &v, + ), Err(err) => return Err(err), }; let filename = url.split('/').next_back().unwrap(); self.download(ctx, &tv, &url, filename).await?; - self.verify(ctx, &mut tv, &pkg, &v, filename).await?; - self.install(ctx, &tv, &pkg, &v, filename)?; + self.verify(ctx, &mut tv, &pkg, v, filename).await?; + self.install(ctx, &tv, &pkg, v, filename)?; Ok(tv) }