diff --git a/pkgs/applications/networking/cluster/terraform/0.8.5.nix b/pkgs/applications/networking/cluster/terraform/0.8.5.nix deleted file mode 100644 index 7f927b586705..000000000000 --- a/pkgs/applications/networking/cluster/terraform/0.8.5.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ stdenv, lib, buildGoPackage, fetchFromGitHub }: - -buildGoPackage rec { - name = "terraform-${version}"; - version = "0.8.5"; - - goPackagePath = "github.com/hashicorp/terraform"; - - src = fetchFromGitHub { - owner = "hashicorp"; - repo = "terraform"; - rev = "v${version}"; - sha256 = "1cxwv3652fpsbm2zk1akw356cd7w7vhny1623ighgbz9ha8gvg09"; - }; - - postInstall = '' - # remove all plugins, they are part of the main binary now - for i in $bin/bin/*; do - if [[ $(basename $i) != terraform ]]; then - rm "$i" - fi - done - ''; - - meta = with stdenv.lib; { - description = "Tool for building, changing, and versioning infrastructure"; - homepage = "https://www.terraform.io/"; - license = licenses.mpl20; - maintainers = with maintainers; [ - jgeerds - zimbatm - ]; - }; -} diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix index 7dc2c5ed4982..7e5a1121be91 100644 --- a/pkgs/applications/networking/cluster/terraform/default.nix +++ b/pkgs/applications/networking/cluster/terraform/default.nix @@ -1,34 +1,59 @@ { stdenv, lib, buildGoPackage, fetchFromGitHub }: -buildGoPackage rec { - name = "terraform-${version}"; - version = "0.8.8"; +let + generic = { version, sha256 }: + buildGoPackage rec { + name = "terraform-${version}"; - goPackagePath = "github.com/hashicorp/terraform"; + goPackagePath = "github.com/hashicorp/terraform"; - src = fetchFromGitHub { - owner = "hashicorp"; - repo = "terraform"; - rev = "v${version}"; + src = fetchFromGitHub { + owner = "hashicorp"; + repo = "terraform"; + rev = "v${version}"; + inherit sha256; + }; + + postInstall = '' + # remove all plugins, they are part of the main binary now + for i in $bin/bin/*; do + if [[ $(basename $i) != terraform ]]; then + rm "$i" + fi + done + ''; + + preCheck = '' + export HOME=$TMP + ''; + + doCheck = true; + + meta = with stdenv.lib; { + description = "Tool for building, changing, and versioning infrastructure"; + homepage = https://www.terraform.io/; + license = licenses.mpl20; + maintainers = with maintainers; [ jgeerds zimbatm peterhoeg ]; + }; + }; + +in rec { + terraform_0_8_5 = generic { + version = "0.8.5"; + sha256 = "1cxwv3652fpsbm2zk1akw356cd7w7vhny1623ighgbz9ha8gvg09"; + }; + + terraform_0_8_8 = generic { + version = "0.8.8"; sha256 = "0ibgpcpvz0bmn3cw60nzsabsrxrbmmym1hv7fx6zmjxiwd68w5gb"; }; - postInstall = '' - # remove all plugins, they are part of the main binary now - for i in $bin/bin/*; do - if [[ $(basename $i) != terraform ]]; then - rm "$i" - fi - done - ''; - - meta = with stdenv.lib; { - description = "Tool for building, changing, and versioning infrastructure"; - homepage = "https://www.terraform.io/"; - license = licenses.mpl20; - maintainers = with maintainers; [ - jgeerds - zimbatm - ]; + terraform_0_9_0 = generic { + version = "0.9.0"; + sha256 = "1v96qgc6pd1bkwvkz855625xdcy7xb5lk60lg70144idqmwfjb9g"; }; + + terraform_0_8 = terraform_0_8_8; + terraform_0_9 = terraform_0_9_0; + terraform = terraform_0_9; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3d6ab328d22c..bb00f2b07fd1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -17997,11 +17997,18 @@ with pkgs; sqsh = callPackage ../development/tools/sqsh { }; - terraform = callPackage ../applications/networking/cluster/terraform {}; + inherit (callPackage ../applications/networking/cluster/terraform {}) + terraform_0_8_5 + terraform_0_8_8 + terraform_0_9_0; - terraform_0_8_5 = callPackage ../applications/networking/cluster/terraform/0.8.5.nix {}; + terraform_0_8 = terraform_0_8_8; + terraform_0_9 = terraform_0_9_0; + terraform = terraform_0_8; - terragrunt = callPackage ../applications/networking/cluster/terragrunt {}; + terragrunt = callPackage ../applications/networking/cluster/terragrunt { + terraform = terraform_0_8; + }; terragrunt_0_9_8 = callPackage ../applications/networking/cluster/terragrunt/0.9.8.nix { terraform = terraform_0_8_5;