diff options
author | superherointj <5861043+superherointj@users.noreply.github.com> | 2023-03-30 18:52:35 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-30 18:52:35 -0300 |
commit | ade3880fdf50b708eae0cda6a1aa559c472dd993 (patch) | |
tree | 6268ddbd762c28d0784fd8fde8922af707af500f /pkgs/applications | |
parent | 0953866c0af0568066959c2474bf260225b49066 (diff) | |
parent | 4d0c1a9157eb313e40b5447193ffe44b909d13c4 (diff) |
Merge pull request #223926 from lucasew/terraform-completion
terraform: add completion
Diffstat (limited to 'pkgs/applications')
-rw-r--r-- | pkgs/applications/networking/cluster/terraform/default.nix | 52 |
1 files changed, 33 insertions, 19 deletions
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix index 215e3a781866b..4fc379ae2384f 100644 --- a/pkgs/applications/networking/cluster/terraform/default.nix +++ b/pkgs/applications/networking/cluster/terraform/default.nix @@ -9,6 +9,7 @@ , writeText , terraform-providers , fetchpatch +, installShellFiles }: let @@ -28,12 +29,38 @@ let ldflags = [ "-s" "-w" ]; + subPackages = [ "." ]; + postConfigure = '' # speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22 substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \ --replace "/bin/stty" "${coreutils}/bin/stty" ''; + nativeBuildInputs = [ installShellFiles ]; + + preCheck = '' + export HOME=$TMPDIR + export TF_SKIP_REMOTE_TESTS=1 + ''; + + # https://github.com/posener/complete/blob/9a4745ac49b29530e07dc2581745a218b646b7a3/cmd/install/bash.go#L8 + completionBash = "complete -C terraform terraform\n"; + # https://github.com/posener/complete/blob/9a4745ac49b29530e07dc2581745a218b646b7a3/cmd/install/zsh.go + completionZsh = "complete -C terraform terraform\n"; + # https://github.com/posener/complete/blob/9a4745ac49b29530e07dc2581745a218b646b7a3/cmd/install/fish.go#L56 + completionFish = '' + function __complete_terraform + set -lx COMP_LINE (commandline -cp) + test -z (commandline -ct) + and set COMP_LINE "$COMP_LINE " + terraform + end + complete -f -c terraform -a "(__complete_terraform)" + ''; + + passAsFile = [ "completionBash" "completionZsh" "completionFish" ]; + postInstall = '' # remove all plugins, they are part of the main binary now for i in $out/bin/*; do @@ -41,32 +68,19 @@ let rm "$i" fi done - ''; - preCheck = '' - export HOME=$TMPDIR - export TF_SKIP_REMOTE_TESTS=1 + installShellCompletion --bash --name terraform $completionBashPath + installShellCompletion --zsh --name terraform $completionZshPath + installShellCompletion --fish --name terraform $completionFishPath ''; - subPackages = [ "." ]; - - meta = with lib; { + meta = { description = "Tool for building, changing, and versioning infrastructure"; homepage = "https://www.terraform.io/"; changelog = "https://github.com/hashicorp/terraform/blob/v${version}/CHANGELOG.md"; - license = licenses.mpl20; - maintainers = with maintainers; [ - Chili-Man - babariviere - kalbasit - marsam - maxeaubrey - timstott - zimbatm - zowoq - techknowlogick - ]; + license = lib.licenses.mpl20; + maintainers = with lib.maintainers; [ Chili-Man babariviere kalbasit marsam maxeaubrey techknowlogick timstott zimbatm zowoq ]; }; } // attrs'); |