summaryrefslogtreecommitdiff
path: root/tofu/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'tofu/default.nix')
-rw-r--r--tofu/default.nix54
1 files changed, 54 insertions, 0 deletions
diff --git a/tofu/default.nix b/tofu/default.nix
new file mode 100644
index 0000000..4e6a425
--- /dev/null
+++ b/tofu/default.nix
@@ -0,0 +1,54 @@
+{inputs, ...}: {
+ perSystem = {
+ lib,
+ pkgs,
+ system,
+ ...
+ }: let
+ config = inputs.terranix.lib.terranixConfiguration {
+ inherit system;
+ modules = [
+ ./cloudflare
+ ./tailscale
+ ./cloud.nix
+ ./vars.nix
+ ./versions.nix
+ ];
+ };
+ in {
+ apps =
+ lib.genAttrs ["apply" "destroy" "plan"] (fn: {
+ type = "app";
+
+ program = pkgs.writeShellApplication {
+ name = fn;
+
+ runtimeInputs = [pkgs.opentofu];
+
+ text = ''
+ config_file="config.tf.json"
+ [ -e "$config_file" ] && rm -f "$config_file"
+ cp ${config} "$config_file"
+ tofu init && tofu ${fn}
+ '';
+ };
+ })
+ // {
+ tofu-config = {
+ type = "app";
+
+ program = pkgs.writeShellApplication {
+ name = "tofu-config";
+
+ runtimeInputs = [pkgs.opentofu];
+
+ text = ''
+ config_file="config.tf.json"
+ [ -e "$config_file" ] && rm -f "$config_file"
+ cp ${config} "$config_file"
+ '';
+ };
+ };
+ };
+ };
+}