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 --- flake.nix | 8 +++++++- modules/flake/default.nix | 6 ++++++ modules/flake/flakeModules.nix | 25 +++++++++++++++++++++++++ modules/flake/homeConfigurations.nix | 19 +++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 modules/flake/default.nix create mode 100644 modules/flake/flakeModules.nix create mode 100644 modules/flake/homeConfigurations.nix diff --git a/flake.nix b/flake.nix index 50a1bd4..d8e4e91 100644 --- a/flake.nix +++ b/flake.nix @@ -26,7 +26,7 @@ nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;}); packageSet = pkgs: - with pkgs; rec { + with pkgs; { treefetch = callPackage ./pkgs/treefetch.nix {}; swhkd = callPackage ./pkgs/swhkd {}; vim-just = callPackage ./pkgs/vim-just.nix {}; @@ -37,6 +37,12 @@ discord-canary = import ./pkgs/discord-canary.nix prev; }; in { + flakeModules = { + default = import ./modules/flake; + flakeModules = import ./modules/flake/flakeModules.nix; + homeConfigurations = import ./modules/flake/homeConfigurations.nix; + }; + formatter = forAllSystems (system: nixpkgsFor.${system}.alejandra); herculesCI = { 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