summary refs log tree commit diff
path: root/pkgs/development/tools/analysis/tflint/default.nix
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2022-10-18 12:28:34 +0200
committerFlorian Klink <flokli@flokli.de>2022-10-18 12:29:53 +0200
commit5d30101409789a5dbc92068bf85d47a220e0661f (patch)
treee62690c660065bb57b4d1ae7426450e26de7ef1d /pkgs/development/tools/analysis/tflint/default.nix
parenta7f9b63b5d48784474f1ba9669b14be92f51c15a (diff)
downloadnixpkgs-5d30101409789a5dbc92068bf85d47a220e0661f.tar
nixpkgs-5d30101409789a5dbc92068bf85d47a220e0661f.tar.gz
nixpkgs-5d30101409789a5dbc92068bf85d47a220e0661f.tar.bz2
nixpkgs-5d30101409789a5dbc92068bf85d47a220e0661f.tar.lz
nixpkgs-5d30101409789a5dbc92068bf85d47a220e0661f.tar.xz
nixpkgs-5d30101409789a5dbc92068bf85d47a220e0661f.tar.zst
nixpkgs-5d30101409789a5dbc92068bf85d47a220e0661f.zip
tflint: add withPlugins passthru
This can be used to build a tflint with plugins like this:

```
tflint.withPlugins (cp: [ cp.tflint-ruleset-aws ])
```
Diffstat (limited to 'pkgs/development/tools/analysis/tflint/default.nix')
-rw-r--r--pkgs/development/tools/analysis/tflint/default.nix26
1 files changed, 25 insertions, 1 deletions
diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix
index 1eab36cf78d..1011cacd366 100644
--- a/pkgs/development/tools/analysis/tflint/default.nix
+++ b/pkgs/development/tools/analysis/tflint/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, runCommand
+, makeWrapper
+, tflint
+, tflint-plugins
+, symlinkJoin
+}:
 
 buildGoModule rec {
   pname = "tflint";
@@ -19,6 +27,22 @@ buildGoModule rec {
 
   ldflags = [ "-s" "-w" ];
 
+  passthru.withPlugins = plugins:
+    let
+      actualPlugins = plugins tflint-plugins;
+      pluginDir = symlinkJoin {
+        name = "tflint-plugin-dir";
+        paths = [ actualPlugins ];
+      };
+    in
+    runCommand "tflint-with-plugins"
+      {
+        nativeBuildInputs = [ makeWrapper ];
+      } ''
+      makeWrapper ${tflint}/bin/tflint $out/bin/tflint \
+        --set TFLINT_PLUGIN_DIR "${pluginDir}"
+    '';
+
   meta = with lib; {
     description = "Terraform linter focused on possible errors, best practices, and so on";
     homepage = "https://github.com/terraform-linters/tflint";