From 150bf82391638a4ea6a514fbd4704bb62ab22eb6 Mon Sep 17 00:00:00 2001 From: seth Date: Mon, 8 May 2023 00:18:25 -0400 Subject: feat: add flake-parts modules --- modules/flake/default.nix | 6 ++++++ modules/flake/flakeModules.nix | 25 +++++++++++++++++++++++++ modules/flake/homeConfigurations.nix | 19 +++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 modules/flake/default.nix create mode 100644 modules/flake/flakeModules.nix create mode 100644 modules/flake/homeConfigurations.nix (limited to 'modules/flake') diff --git a/modules/flake/default.nix b/modules/flake/default.nix new file mode 100644 index 0000000..c3de095 --- /dev/null +++ b/modules/flake/default.nix @@ -0,0 +1,6 @@ +_: { + imports = [ + ./flakeModules.nix + ./homeConfigurations.nix + ]; +} diff --git a/modules/flake/flakeModules.nix b/modules/flake/flakeModules.nix new file mode 100644 index 0000000..8c27e9f --- /dev/null +++ b/modules/flake/flakeModules.nix @@ -0,0 +1,25 @@ +{ + self, + lib, + flake-parts-lib, + ... +}: let + inherit (lib) mapAttrs mkOption types; + inherit (flake-parts-lib) mkSubmoduleOptions; +in { + options = { + flake = mkSubmoduleOptions { + flakeModules = mkOption { + type = types.lazyAttrsOf types.unspecified; + default = {}; + apply = mapAttrs (k: v: { + _file = "${toString self.outPath}/flake.nix#flakeModules.${k}"; + imports = [v]; + }); + description = '' + flake-parts modules + ''; + }; + }; + }; +} diff --git a/modules/flake/homeConfigurations.nix b/modules/flake/homeConfigurations.nix new file mode 100644 index 0000000..b4d966f --- /dev/null +++ b/modules/flake/homeConfigurations.nix @@ -0,0 +1,19 @@ +{ + lib, + flake-parts-lib, + ... +}: let + inherit (lib) mkOption types; + inherit (flake-parts-lib) mkTransposedPerSystemModule; +in + mkTransposedPerSystemModule { + name = "homeConfigurations"; + option = mkOption { + type = types.lazyAttrsOf types.raw; + default = {}; + description = '' + An attribute set containing home-manager homeConfigurations + ''; + }; + file = ./homeConfigurations.nix; + } -- cgit v1.2.3