|
2 | 2 | description = "A neovim configuration system for NixOS";
|
3 | 3 |
|
4 | 4 | inputs = {
|
5 |
| - flake-utils.url = "github:numtide/flake-utils"; |
6 | 5 | nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
| 6 | + flake-parts.url = "github:hercules-ci/flake-parts"; |
7 | 7 |
|
8 | 8 | pre-commit-hooks = {
|
9 | 9 | url = "github:cachix/pre-commit-hooks.nix";
|
|
14 | 14 | outputs = {
|
15 | 15 | self,
|
16 | 16 | nixpkgs,
|
17 |
| - flake-utils, |
| 17 | + flake-parts, |
18 | 18 | pre-commit-hooks,
|
19 | 19 | ...
|
20 | 20 | } @ inputs:
|
|
47 | 47 | inherit modules;
|
48 | 48 | inherit self;
|
49 | 49 | };
|
| 50 | + in |
| 51 | + flake-parts.lib.mkFlake {inherit inputs;} ({ |
| 52 | + withSystem, |
| 53 | + config, |
| 54 | + lib, |
| 55 | + ... |
| 56 | + }: { |
| 57 | + systems = [ |
| 58 | + "x86_64-linux" |
| 59 | + "aarch64-linux" |
| 60 | + "x86_64-darwin" |
| 61 | + "aarch64-darwin" |
| 62 | + ]; |
50 | 63 |
|
51 |
| - flakeOutput = |
52 |
| - flake-utils.lib.eachDefaultSystem |
53 |
| - (system: let |
54 |
| - pkgs = import nixpkgs {inherit system;}; |
55 |
| - # Some nixvim supported plugins require the use of unfree packages. |
56 |
| - # This unfree-friendly pkgs is used for documentation and testing only. |
| 64 | + perSystem = { |
| 65 | + pkgs, |
| 66 | + system, |
| 67 | + ... |
| 68 | + }: let |
57 | 69 | pkgs-unfree = import nixpkgs {
|
58 | 70 | inherit system;
|
59 | 71 | config.allowUnfree = true;
|
|
111 | 123 | pkgs = pkgs-unfree;
|
112 | 124 | modules = modules pkgs;
|
113 | 125 | });
|
| 126 | + |
114 | 127 | legacyPackages = rec {
|
115 | 128 | makeNixvimWithModule = import ./wrappers/standalone.nix pkgs wrapperArgs;
|
116 | 129 | makeNixvim = configuration:
|
|
120 | 133 | };
|
121 | 134 | };
|
122 | 135 | };
|
| 136 | + |
123 | 137 | formatter = pkgs.alejandra;
|
124 |
| - lib = import ./lib { |
125 |
| - inherit pkgs; |
126 |
| - inherit (pkgs) lib; |
127 |
| - inherit (self.legacyPackages."${system}") makeNixvim; |
128 |
| - }; |
129 |
| - }); |
130 |
| - in |
131 |
| - flakeOutput |
132 |
| - // { |
133 |
| - nixosModules.nixvim = import ./wrappers/nixos.nix wrapperArgs; |
134 |
| - homeManagerModules.nixvim = import ./wrappers/hm.nix wrapperArgs; |
135 |
| - nixDarwinModules.nixvim = import ./wrappers/darwin.nix wrapperArgs; |
136 |
| - rawModules.nixvim = nixvimModules; |
| 138 | + }; |
137 | 139 |
|
138 |
| - overlays.default = final: prev: { |
139 |
| - nixvim = rec { |
140 |
| - makeNixvimWithModule = import ./wrappers/standalone.nix prev wrapperArgs; |
141 |
| - makeNixvim = configuration: |
142 |
| - makeNixvimWithModule { |
143 |
| - module = { |
144 |
| - config = configuration; |
| 140 | + flake = { |
| 141 | + nixosModules.nixvim = import ./wrappers/nixos.nix wrapperArgs; |
| 142 | + homeManagerModules.nixvim = import ./wrappers/hm.nix wrapperArgs; |
| 143 | + nixDarwinModules.nixvim = import ./wrappers/darwin.nix wrapperArgs; |
| 144 | + rawModules.nixvim = nixvimModules; |
| 145 | + |
| 146 | + overlays.default = final: prev: { |
| 147 | + nixvim = rec { |
| 148 | + makeNixvimWithModule = import ./wrappers/standalone.nix prev wrapperArgs; |
| 149 | + makeNixvim = configuration: |
| 150 | + makeNixvimWithModule { |
| 151 | + module = { |
| 152 | + config = configuration; |
| 153 | + }; |
145 | 154 | };
|
146 |
| - }; |
| 155 | + }; |
147 | 156 | };
|
148 |
| - }; |
149 | 157 |
|
150 |
| - templates = let |
151 |
| - simple = { |
152 |
| - path = ./templates/simple; |
153 |
| - description = "A simple nix flake template for getting started with nixvim"; |
| 158 | + lib = lib.genAttrs config.systems ( |
| 159 | + lib.flip withSystem ( |
| 160 | + { |
| 161 | + pkgs, |
| 162 | + system, |
| 163 | + ... |
| 164 | + }: |
| 165 | + import ./lib { |
| 166 | + inherit pkgs; |
| 167 | + inherit (pkgs) lib; |
| 168 | + inherit (self.legacyPackages."${system}") makeNixvim; |
| 169 | + } |
| 170 | + ) |
| 171 | + ); |
| 172 | + |
| 173 | + templates = let |
| 174 | + simple = { |
| 175 | + path = ./templates/simple; |
| 176 | + description = "A simple nix flake template for getting started with nixvim"; |
| 177 | + }; |
| 178 | + in { |
| 179 | + default = simple; |
154 | 180 | };
|
155 |
| - in { |
156 |
| - default = simple; |
157 | 181 | };
|
158 |
| - }; |
| 182 | + }); |
159 | 183 | }
|
0 commit comments