summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/README.md6
-rw-r--r--modules/darwin/default.nix18
-rw-r--r--modules/default.nix6
-rw-r--r--modules/flake/default.nix3
-rw-r--r--modules/flake/terranix.nix59
-rw-r--r--modules/nixos/default.nix22
-rw-r--r--modules/nixos/desktop/plasma/default.nix5
-rw-r--r--modules/nixos/profiles/server.nix5
-rw-r--r--modules/shared/traits/home-manager.nix3
9 files changed, 98 insertions, 29 deletions
diff --git a/modules/README.md b/modules/README.md
deleted file mode 100644
index 7e45a1f..0000000
--- a/modules/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# ./modules/
-
-These directory names are probably self explanatory
-
-In case they aren't: `darwin/` contains nix-darwin modules, `nixos/` contains
-NixOS modules, and `shared` contains modules I use on both!
diff --git a/modules/darwin/default.nix b/modules/darwin/default.nix
index 26ea30f..af7701e 100644
--- a/modules/darwin/default.nix
+++ b/modules/darwin/default.nix
@@ -1,9 +1,13 @@
{
- imports = [
- ../shared
- ./defaults
- ./desktop
- ./profiles
- ./traits
- ];
+ flake.darwinModules = {
+ default = {
+ imports = [
+ ../shared
+ ./defaults
+ ./desktop
+ ./profiles
+ ./traits
+ ];
+ };
+ };
}
diff --git a/modules/default.nix b/modules/default.nix
new file mode 100644
index 0000000..e8a1832
--- /dev/null
+++ b/modules/default.nix
@@ -0,0 +1,6 @@
+{
+ imports = [
+ ./darwin
+ ./nixos
+ ];
+}
diff --git a/modules/flake/default.nix b/modules/flake/default.nix
new file mode 100644
index 0000000..2cb7409
--- /dev/null
+++ b/modules/flake/default.nix
@@ -0,0 +1,3 @@
+{
+ terranix = ./terranix.nix;
+}
diff --git a/modules/flake/terranix.nix b/modules/flake/terranix.nix
new file mode 100644
index 0000000..cbf57b9
--- /dev/null
+++ b/modules/flake/terranix.nix
@@ -0,0 +1,59 @@
+{
+ config,
+ lib,
+ pkgs,
+ flake-parts-lib,
+ inputs,
+ ...
+}:
+
+let
+ inherit (flake-parts-lib) mkSubmoduleOptions;
+
+ namespace = "terranix";
+ cfg = config.${namespace};
+in
+
+{
+ options.terranix = mkSubmoduleOptions {
+ package = lib.mkOption {
+ type = lib.types.functionTo lib.types.package;
+ default = pkgs: pkgs.opentofu;
+ defaultText = lib.literalExpression "pkgs: pkgs.opentofu";
+ apply = fn: fn pkgs;
+ description = "The Terraform-compatible implementation to use.";
+ example = lib.literalExpression "pkgs: pkgs.terraform";
+ };
+
+ modules = lib.mkOption {
+ type = lib.types.listOf lib.types.deferredModule;
+ default = [ ];
+ };
+ };
+
+ config = {
+ perSystem =
+ {
+ lib,
+ pkgs,
+ system,
+ ...
+ }:
+
+ let
+ terranixConfiguration = inputs.terranix.lib.terranixConfiguration {
+ inherit system;
+ inherit (cfg) modules;
+ };
+ in
+
+ {
+ apps.tf = {
+ program = pkgs.writeShellScriptBin "tf" ''
+ ln -sf ${terranixConfiguration} config.tf.json
+ exec ${lib.getExe cfg.package} "$@"
+ '';
+ };
+ };
+ };
+}
diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix
index 82e4b93..47a814d 100644
--- a/modules/nixos/default.nix
+++ b/modules/nixos/default.nix
@@ -1,11 +1,15 @@
{
- imports = [
- ../shared
- ./defaults
- ./desktop
- ./mixins
- ./profiles
- ./services
- ./traits
- ];
+ flake.nixosModules = {
+ default = {
+ imports = [
+ ../shared
+ ./defaults
+ ./desktop
+ ./mixins
+ ./profiles
+ ./services
+ ./traits
+ ];
+ };
+ };
}
diff --git a/modules/nixos/desktop/plasma/default.nix b/modules/nixos/desktop/plasma/default.nix
index dceded3..c021d46 100644
--- a/modules/nixos/desktop/plasma/default.nix
+++ b/modules/nixos/desktop/plasma/default.nix
@@ -2,11 +2,10 @@
config,
lib,
pkgs,
- inputs,
+ inputs',
...
}:
let
- inherit (pkgs.stdenv.hostPlatform) system;
cfg = config.desktop.plasma;
in
{
@@ -26,7 +25,7 @@ in
systemPackages = [
pkgs.haruna # mpv frontend
- inputs.krunner-nix.packages.${system}.default # thank you leah
+ inputs'.krunner-nix.packages.default # thank you leah
];
};
diff --git a/modules/nixos/profiles/server.nix b/modules/nixos/profiles/server.nix
index e3e785b..a4eae44 100644
--- a/modules/nixos/profiles/server.nix
+++ b/modules/nixos/profiles/server.nix
@@ -1,8 +1,7 @@
{
config,
lib,
- pkgs,
- inputs,
+ inputs',
...
}:
let
@@ -21,7 +20,7 @@ in
lib.mkMerge [
{
# All servers are most likely on stable, so we want to pull in some newer packages from time to time
- _module.args.unstable = inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system};
+ _module.args.unstable = inputs'.nixpkgs.legacyPackages;
boot.tmp.cleanOnBoot = lib.mkDefault true;
diff --git a/modules/shared/traits/home-manager.nix b/modules/shared/traits/home-manager.nix
index f901cdc..01539a3 100644
--- a/modules/shared/traits/home-manager.nix
+++ b/modules/shared/traits/home-manager.nix
@@ -2,6 +2,7 @@
config,
lib,
inputs,
+ inputs',
...
}:
let
@@ -17,7 +18,7 @@ in
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
- inherit inputs;
+ inherit inputs inputs';
};
};
};