@@ -1,5 +1,6 @@
11{ stdenv
22, lib
3+, buildEnv
34, buildGoModule
45, fetchFromGitHub
56, makeWrapper
@@ -62,9 +63,9 @@ let
6263 babariviere
6364 kalbasit
6465 marsam
66+ maxeaubrey
6567 timstott
6668 zimbatm
67− maxeaubrey
6869 zowoq
6970 ];
7071 };
@@ -76,39 +77,6 @@ let
7677 let
7778 actualPlugins = plugins terraform.plugins;
7879
79− # Make providers available in Terraform 0.13 and 0.12 search paths.
80− pluginDir = lib.concatMapStrings
81− (pl:
82− let
83− inherit (pl) version GOOS GOARCH;
84−
85− pname = pl.pname or (throw "${pl.name} is missing a pname attribute");
86−
87− # This is just the name, without the terraform-provider- prefix
88− plugin_name = lib.removePrefix "terraform-provider-" pname;
89−
90− slug = pl.passthru.provider-source-address or "registry.terraform.io/nixpkgs/${plugin_name}";
91−
92− shim = writeText "shim" ''
93− #!${runtimeShell}
94− exec ${pl}/bin/${pname}_v${version} "$@"
95− '';
96− in
97− ''
98− TF_0_13_PROVIDER_PATH=$out/plugins/${slug}/${version}/${GOOS}_${GOARCH}/${pname}_v${version}
99− mkdir -p "$(dirname $TF_0_13_PROVIDER_PATH)"
100−
101− cp ${shim} "$TF_0_13_PROVIDER_PATH"
102− chmod +x "$TF_0_13_PROVIDER_PATH"
103−
104− TF_0_12_PROVIDER_PATH=$out/plugins/${pname}_v${version}
105−
106− cp ${shim} "$TF_0_12_PROVIDER_PATH"
107− chmod +x "$TF_0_12_PROVIDER_PATH"
108− ''
109− )
110− actualPlugins;
111−
11280 # Wrap PATH of plugins propagatedBuildInputs, plugins may have runtime dependencies on external binaries
11381 wrapperInputs = lib.unique (lib.flatten
11482 (lib.catAttrs "propagatedBuildInputs"
@@ -134,18 +102,16 @@ let
134102 terraform.overrideAttrs
135103 (orig: { passthru = orig.passthru // passthru; })
136104 else
137− lib.appendToName "with-plugins" (stdenv.mkDerivation {
105+ lib.appendToName "with-plugins" (buildEnv {
138106 inherit (terraform) name meta;
107+ paths = actualPlugins;
139108 nativeBuildInputs = [ makeWrapper ];
140−
141− buildCommand = pluginDir + ''
142− mkdir -p $out/bin/
109+ postBuild = ''
110+ mkdir -p $out/bin
143111 makeWrapper "${terraform}/bin/terraform" "$out/bin/terraform" \
144− --set NIX_TERRAFORM_PLUGIN_DIR $out/plugins \
112+ --set NIX_TERRAFORM_PLUGIN_DIR $out/libexec/terraform-providers \
145113 --prefix PATH : "${lib.makeBinPath wrapperInputs}"
146114 '';
147−
148− inherit passthru;
149115 });
150116 in
151117 withPlugins (_: [ ]);