73 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   inputs,
 | |
|   rootPath,
 | |
|   ...
 | |
| }:
 | |
| {
 | |
|   imports = [
 | |
|     (rootPath + "/treefmt.nix")
 | |
|   ];
 | |
|   perSystem =
 | |
|     {
 | |
|       pkgs,
 | |
|       system,
 | |
|       lib,
 | |
|       self',
 | |
|       inputs',
 | |
|       ...
 | |
|     }:
 | |
|     let
 | |
|       inherit (inputs) nixpkgs;
 | |
|     in
 | |
|     {
 | |
|       _module.args.pkgs = import nixpkgs {
 | |
|         inherit system;
 | |
|         config = {
 | |
|           allowUnfree = true;
 | |
|         };
 | |
|         overlays = [ (_final: _prev: { inherit lib; }) ];
 | |
|       };
 | |
|       devShells.default = pkgs.mkShell {
 | |
|         name = "nixos-shell";
 | |
|         packages = with pkgs; [
 | |
|           nixd
 | |
|           nil
 | |
|           typos
 | |
|           typos-lsp
 | |
|           just
 | |
|           nvfetcher
 | |
|         ];
 | |
|       };
 | |
|       legacyPackages =
 | |
|         let
 | |
|           inputsScope = lib.makeScope pkgs.newScope (self: {
 | |
|             inherit inputs rootPath;
 | |
|             srcs = self.callPackage (rootPath + "/_sources/generated.nix") { };
 | |
|             inherit (inputs'.nixvim.legacyPackages) makeNixvim makeNixvimWithModule;
 | |
|             inherit (self'.legacyPackages) nixvimPlugins;
 | |
|             neovim_git = inputs'.neovim-nightly.packages.default;
 | |
|           });
 | |
|         in
 | |
|         lib.packagesFromDirectoryRecursive {
 | |
|           inherit (inputsScope) callPackage;
 | |
|           directory = rootPath + "/pkgs";
 | |
|         };
 | |
|       packages =
 | |
|         let
 | |
|           flattenPkgs =
 | |
|             path: value:
 | |
|             if lib.isDerivation value then
 | |
|               {
 | |
|                 ${lib.concatStringsSep "/" path} = value;
 | |
|               }
 | |
|             else if lib.isAttrs value then
 | |
|               lib.concatMapAttrs (name: flattenPkgs (path ++ [ name ])) value
 | |
|             else
 | |
|               { };
 | |
|         in
 | |
|         flattenPkgs [ ] self'.legacyPackages;
 | |
|       checks = lib.concatMapAttrs (name: value: {
 | |
|         "package-${name}" = value;
 | |
|       }) self'.packages;
 | |
|     };
 | |
| }
 |