flake: refactor
This commit is contained in:
		
							
								
								
									
										78
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								flake.nix
									
									
									
									
									
								
							| @@ -2,62 +2,44 @@ | ||||
|   description = "xeals's Nix repository"; | ||||
|  | ||||
|   inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; | ||||
|   inputs.flake-utils.url = "github:numtide/flake-utils"; | ||||
|  | ||||
|   outputs = { self, nixpkgs }: | ||||
|   outputs = { self, nixpkgs, flake-utils }: | ||||
|     let | ||||
|  | ||||
|       inherit (nixpkgs) lib; | ||||
|  | ||||
|       supportedSystems = [ | ||||
|         "aarch64-darwin" | ||||
|         "aarch64-linux" | ||||
|         "i686-linux" | ||||
|         "x86_64-darwin" | ||||
|         "x86_64-linux" | ||||
|       ]; | ||||
|  | ||||
|       forAllSystems = f: lib.genAttrs supportedSystems (system: f system); | ||||
|  | ||||
|       inherit (flake-utils.lib) mkApp; | ||||
|     in | ||||
|     { | ||||
|     flake-utils.lib.eachDefaultSystem | ||||
|       (system: | ||||
|         let | ||||
|           pkgs = import nixpkgs { inherit system; }; | ||||
|         in | ||||
|         { | ||||
|           packages = | ||||
|             lib.filterAttrs | ||||
|               (_: drv: builtins.elem system (drv.meta.platforms or [ ])) | ||||
|               (import ./pkgs/top-level/all-packages.nix { inherit pkgs; }); | ||||
|  | ||||
|       nixosModules = lib.mapAttrs (_: path: import path) (import ./modules); | ||||
|  | ||||
|       nixosModule = { | ||||
|         imports = lib.attrValues self.nixosModules; | ||||
|           apps = { | ||||
|             alacritty = mkApp { drv = pkgs.alacritty-ligatures; exePath = "/bin/alacritty"; }; | ||||
|             protonmail-bridge = mkApp { drv = pkgs.protonmail-bridge; }; | ||||
|             protonmail-bridge-headless = mkApp { drv = pkgs.protonmail-bridge; }; | ||||
|             psst-cli = mkApp { drv = pkgs.psst; exePath = "/bin/psst-cli"; }; | ||||
|             psst-gui = mkApp { drv = pkgs.psst; exePath = "/bin/psst-gui"; }; | ||||
|             samrewritten = mkApp { drv = pkgs.samrewritten; }; | ||||
|             spotify-ripper = mkApp { drv = pkgs.spotify-ripper; }; | ||||
|           }; | ||||
|         }) | ||||
|     // { | ||||
|       nixosModules = lib.mapAttrs (_: path: import path) (import ./modules) // { | ||||
|         default = { | ||||
|           imports = lib.attrValues self.nixosModules; | ||||
|         }; | ||||
|       }; | ||||
|  | ||||
|       overlays = import ./overlays // { | ||||
|         pkgs = _final: prev: import ./pkgs/top-level/all-packages.nix { pkgs = prev; }; | ||||
|         pkgs = _: prev: import ./pkgs/top-level/all-packages.nix { pkgs = prev; }; | ||||
|         default = _: _: { xeals = nixpkgs.lib.composeExtensions self.overlays.pkgs; }; | ||||
|       }; | ||||
|  | ||||
|       overlay = _final: _prev: { | ||||
|         xeals = nixpkgs.lib.composeExtensions self.overlays.pkgs; | ||||
|       }; | ||||
|  | ||||
|       packages = forAllSystems (system: | ||||
|         let | ||||
|           pkgs = nixpkgs.legacyPackages.${system}; | ||||
|           xPkgs = import ./pkgs/top-level/all-packages.nix { inherit pkgs; }; | ||||
|         in | ||||
|         lib.filterAttrs | ||||
|           (_attr: drv: builtins.elem system (drv.meta.platforms or [ ])) | ||||
|           xPkgs); | ||||
|  | ||||
|       apps = forAllSystems (system: | ||||
|         let | ||||
|           mkApp = opts: { type = "app"; } // opts; | ||||
|           pkgs = self.packages.${system}; | ||||
|         in | ||||
|         { | ||||
|           alacritty = mkApp { program = "${pkgs.alacritty-ligatures}/bin/alacritty"; }; | ||||
|           protonmail-bridge = mkApp { program = "${pkgs.protonmail-bridge}/bin/protonmail-bridge"; }; | ||||
|           protonmail-bridge-headless = mkApp { program = "${pkgs.protonmail-bridge}/bin/protonmail-bridge"; }; | ||||
|           psst-cli = mkApp { program = "${pkgs.psst}/bin/psst-cli"; }; | ||||
|           psst-gui = mkApp { program = "${pkgs.psst}/bin/psst-gui"; }; | ||||
|           samrewritten = mkApp { program = "${pkgs.samrewritten}/bin/samrewritten"; }; | ||||
|           spotify-ripper = mkApp { program = "${pkgs.spotify-ripper}/bin/spotify-ripper"; }; | ||||
|         }); | ||||
|  | ||||
|     }; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user