From 136c6c1815805691052441bd7a30bb8a732ec651 Mon Sep 17 00:00:00 2001 From: Bastien Rivière Date: Thu, 14 Nov 2019 15:30:19 +0000 Subject: terraform: 0.12.13 -> 0.12.14 (#73393) update terraform to it's latest version --- .../networking/cluster/terraform/default.nix | 107 ++++++++++++--------- 1 file changed, 61 insertions(+), 46 deletions(-) (limited to 'pkgs/applications/networking/cluster/terraform') diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix index 9bf29d87812c..598284dcb255 100644 --- a/pkgs/applications/networking/cluster/terraform/default.nix +++ b/pkgs/applications/networking/cluster/terraform/default.nix @@ -1,28 +1,20 @@ -{ stdenv -, lib -, buildEnv -, buildGoPackage -, fetchFromGitHub -, makeWrapper -, runCommand -, writeText -, terraform-providers -}: +{ stdenv, lib, buildEnv, buildGoPackage, fetchFromGitHub, makeWrapper +, runCommand, writeText, terraform-providers }: let goPackagePath = "github.com/hashicorp/terraform"; generic = { version, sha256, ... }@attrs: - let attrs' = builtins.removeAttrs attrs ["version" "sha256"]; in - buildGoPackage ({ + let attrs' = builtins.removeAttrs attrs [ "version" "sha256" ]; + in buildGoPackage ({ name = "terraform-${version}"; inherit goPackagePath; src = fetchFromGitHub { - owner = "hashicorp"; - repo = "terraform"; - rev = "v${version}"; + owner = "hashicorp"; + repo = "terraform"; + rev = "v${version}"; inherit sha256; }; @@ -40,10 +32,17 @@ let ''; meta = with stdenv.lib; { - description = "Tool for building, changing, and versioning infrastructure"; - homepage = https://www.terraform.io/; + description = + "Tool for building, changing, and versioning infrastructure"; + homepage = "https://www.terraform.io/"; license = licenses.mpl20; - maintainers = with maintainers; [ zimbatm peterhoeg kalbasit marsam ]; + maintainers = with maintainers; [ + zimbatm + peterhoeg + kalbasit + marsam + babariviere + ]; }; } // attrs'); @@ -54,38 +53,54 @@ let actualPlugins = plugins terraform.plugins; # Wrap PATH of plugins propagatedBuildInputs, plugins may have runtime dependencies on external binaries - wrapperInputs = lib.unique (lib.flatten (lib.catAttrs "propagatedBuildInputs" (builtins.filter (x: x != null) actualPlugins))); + wrapperInputs = lib.unique (lib.flatten + (lib.catAttrs "propagatedBuildInputs" + (builtins.filter (x: x != null) actualPlugins))); passthru = { - withPlugins = newplugins: withPlugins (x: newplugins x ++ actualPlugins); + withPlugins = newplugins: + withPlugins (x: newplugins x ++ actualPlugins); full = withPlugins lib.attrValues; # Ouch - overrideDerivation = f: (pluggable (terraform.overrideDerivation f)).withPlugins plugins; - overrideAttrs = f: (pluggable (terraform.overrideAttrs f)).withPlugins plugins; - override = x: (pluggable (terraform.override x)).withPlugins plugins; + overrideDerivation = f: + (pluggable (terraform.overrideDerivation f)).withPlugins plugins; + overrideAttrs = f: + (pluggable (terraform.overrideAttrs f)).withPlugins plugins; + override = x: + (pluggable (terraform.override x)).withPlugins plugins; }; - in # Don't bother wrapping unless we actually have plugins, since the wrapper will stop automatic downloading # of plugins, which might be counterintuitive if someone just wants a vanilla Terraform. - if actualPlugins == [] - then terraform.overrideAttrs (orig: { passthru = orig.passthru // passthru; }) - else lib.appendToName "with-plugins"(stdenv.mkDerivation { - inherit (terraform) name; - buildInputs = [ makeWrapper ]; - - buildCommand = '' - mkdir -p $out/bin/ - makeWrapper "${terraform.bin}/bin/terraform" "$out/bin/terraform" \ - --set NIX_TERRAFORM_PLUGIN_DIR "${buildEnv { name = "tf-plugin-env"; paths = actualPlugins; }}/bin" \ - --prefix PATH : "${lib.makeBinPath wrapperInputs}" - ''; - - inherit passthru; - }); - in withPlugins (_: []); - - plugins = removeAttrs terraform-providers ["override" "overrideDerivation" "recurseForDerivations"]; + in if actualPlugins == [ ] then + terraform.overrideAttrs + (orig: { passthru = orig.passthru // passthru; }) + else + lib.appendToName "with-plugins" (stdenv.mkDerivation { + inherit (terraform) name; + buildInputs = [ makeWrapper ]; + + buildCommand = '' + mkdir -p $out/bin/ + makeWrapper "${terraform.bin}/bin/terraform" "$out/bin/terraform" \ + --set NIX_TERRAFORM_PLUGIN_DIR "${ + buildEnv { + name = "tf-plugin-env"; + paths = actualPlugins; + } + }/bin" \ + --prefix PATH : "${lib.makeBinPath wrapperInputs}" + ''; + + inherit passthru; + }); + in withPlugins (_: [ ]); + + plugins = removeAttrs terraform-providers [ + "override" + "overrideDerivation" + "recurseForDerivations" + ]; in rec { terraform_0_11 = pluggable (generic { version = "0.11.14"; @@ -97,8 +112,8 @@ in rec { terraform_0_11-full = terraform_0_11.full; terraform_0_12 = pluggable (generic { - version = "0.12.13"; - sha256 = "11nbr9avw6jx349jdmxgxiawk8i5mpw3p4rrl89yly0wfhg0fh4a"; + version = "0.12.14"; + sha256 = "0pq4sfnnlj91gxyxvyzzrgglnvh8xpan90gnc9jvnnb23iv4q96l"; patches = [ ./provider-path.patch ]; passthru = { inherit plugins; }; }); @@ -112,8 +127,8 @@ in rec { resource "random_id" "test" {} ''; terraform = terraform_0_11.withPlugins (p: [ p.random ]); - test = runCommand "terraform-plugin-test" { buildInputs = [terraform]; } - '' + test = + runCommand "terraform-plugin-test" { buildInputs = [ terraform ]; } '' set -e # make it fail outside of sandbox export HTTP_PROXY=http://127.0.0.1:0 HTTPS_PROXY=https://127.0.0.1:0 -- cgit 1.4.1