diff options
| author | seth <[email protected]> | 2023-05-08 00:18:25 -0400 |
|---|---|---|
| committer | seth <[email protected]> | 2023-05-08 00:18:25 -0400 |
| commit | 150bf82391638a4ea6a514fbd4704bb62ab22eb6 (patch) | |
| tree | 493a04061ec18101aa259d7555496809650831d8 | |
| parent | 5d3773f5ce23f0a07f73761d177130d885232a11 (diff) | |
feat: add flake-parts modules
| -rw-r--r-- | flake.nix | 8 | ||||
| -rw-r--r-- | modules/flake/default.nix | 6 | ||||
| -rw-r--r-- | modules/flake/flakeModules.nix | 25 | ||||
| -rw-r--r-- | modules/flake/homeConfigurations.nix | 19 |
4 files changed, 57 insertions, 1 deletions
@@ -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; + } |
