aboutsummaryrefslogtreecommitdiff
path: root/flake/terraform.nix
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--flake/terraform.nix40
1 files changed, 40 insertions, 0 deletions
diff --git a/flake/terraform.nix b/flake/terraform.nix
new file mode 100644
index 0000000..23cc6d3
--- /dev/null
+++ b/flake/terraform.nix
@@ -0,0 +1,40 @@
+{ lib, ... }:
+{
+ perSystem =
+ { pkgs, ... }:
+ let
+ mkTfWrapper =
+ {
+ tfPlugins,
+ cfg,
+ }:
+ let
+ pkg = pkgs.opentofu.withPlugins tfPlugins;
+ in
+ {
+ type = "app";
+ program = toString (
+ pkgs.writers.writeBash "tf" ''
+ set -xeuo pipefail
+ ln -snf ${cfg} config.tf.json
+ exec ${lib.getExe pkg} "$@"
+ ''
+ );
+ };
+ in
+ {
+ apps = {
+ tf = mkTfWrapper {
+ cfg = pkgs.adminTerraformCfg;
+ tfPlugins = p: [
+ p.cloudflare
+ p.digitalocean
+ p.external
+ p.google
+ p.null
+ p.random
+ ];
+ };
+ };
+ };
+}