mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-04 12:42:21 +00:00 
			
		
		
		
	flake.nix: modularize (pt 1)
This commit is contained in:
		
					parent
					
						
							
								c759ae02f5
							
						
					
				
			
			
				commit
				
					
						2f84ce13c4
					
				
			
		
					 4 changed files with 124 additions and 58 deletions
				
			
		
							
								
								
									
										77
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										77
									
								
								flake.nix
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -23,81 +23,42 @@
 | 
			
		|||
    flake-parts.lib.mkFlake {inherit inputs;} {
 | 
			
		||||
      systems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
 | 
			
		||||
 | 
			
		||||
      imports = [
 | 
			
		||||
        # add lib to module args
 | 
			
		||||
        {_module.args = {inherit (nixpkgs) lib;};}
 | 
			
		||||
        ./flake/apps.nix
 | 
			
		||||
        ./flake/legacyPackages.nix
 | 
			
		||||
        ./flake/packages.nix
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      flake = {
 | 
			
		||||
        lib = {
 | 
			
		||||
          inherit (import ./lib/stdlib-extended.nix nixpkgs.lib) nvim;
 | 
			
		||||
          inherit neovimConfiguration;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        nixosModules.default = {
 | 
			
		||||
          imports = [./lib/hm-module.nix];
 | 
			
		||||
          nixpkgs.overlays = [
 | 
			
		||||
            inputs.tidalcycles.overlays.default
 | 
			
		||||
            inputs.self.overlays.default
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        overlays.default = final: prev: {
 | 
			
		||||
          inherit neovimConfiguration;
 | 
			
		||||
          neovim-nix = buildPkg prev [nixConfig];
 | 
			
		||||
          neovim-maximal = buildPkg prev [maximalConfig];
 | 
			
		||||
          neovim-tidal = buildPkg prev [tidalConfig];
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        nixosModules.hm-module = {
 | 
			
		||||
          imports = [
 | 
			
		||||
            ./lib/hm.nix
 | 
			
		||||
            # {nixpkgs.overlays = [inputs.self.overlays.default];} what?
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      perSystem = {
 | 
			
		||||
        system,
 | 
			
		||||
        self',
 | 
			
		||||
        config,
 | 
			
		||||
        pkgs,
 | 
			
		||||
        ...
 | 
			
		||||
      }: {
 | 
			
		||||
        legacyPackages = import nixpkgs {
 | 
			
		||||
          inherit system;
 | 
			
		||||
          overlays = [
 | 
			
		||||
            inputs.tidalcycles.overlays.default
 | 
			
		||||
            (final: prev: {
 | 
			
		||||
              rnix-lsp = inputs.rnix-lsp.defaultPackage.${system};
 | 
			
		||||
              nil = inputs.nil.packages.${system}.default;
 | 
			
		||||
            })
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        apps =
 | 
			
		||||
          {
 | 
			
		||||
            nix.program = lib.getExe self'.packages.nix;
 | 
			
		||||
            maximal.program = lib.getExe self'.packages.maximal;
 | 
			
		||||
            default = self'.apps.nix;
 | 
			
		||||
          }
 | 
			
		||||
          // (
 | 
			
		||||
            if !(builtins.elem system ["aarch64-darwin" "x86_64-darwin"])
 | 
			
		||||
            then {
 | 
			
		||||
              tidal.program = lib.getExe self'.packages.tidal;
 | 
			
		||||
            }
 | 
			
		||||
            else {}
 | 
			
		||||
          );
 | 
			
		||||
 | 
			
		||||
        devShells.default = self'.legacyPackages.mkShell {nativeBuildInputs = [self'.packages.nix];};
 | 
			
		||||
 | 
			
		||||
        packages = let
 | 
			
		||||
          docs = import ./docs {
 | 
			
		||||
            pkgs = self'.legacyPackages;
 | 
			
		||||
            nmdSrc = inputs.nmd;
 | 
			
		||||
          };
 | 
			
		||||
        in
 | 
			
		||||
          {
 | 
			
		||||
            # Documentation
 | 
			
		||||
            docs = docs.manual.html;
 | 
			
		||||
            docs-html = docs.manual.html;
 | 
			
		||||
            docs-manpages = docs.manPages;
 | 
			
		||||
            docs-json = docs.options.json;
 | 
			
		||||
 | 
			
		||||
            # Available Configurations
 | 
			
		||||
            nix = buildPkg self'.legacyPackages [nixConfig];
 | 
			
		||||
            maximal = buildPkg self'.legacyPackages [maximalConfig];
 | 
			
		||||
          }
 | 
			
		||||
          // (
 | 
			
		||||
            if !(builtins.elem system ["aarch64-darwin" "x86_64-darwin"])
 | 
			
		||||
            then {tidal = buildPkg self'.legacyPackages [tidalConfig];}
 | 
			
		||||
            else {}
 | 
			
		||||
          );
 | 
			
		||||
        devShells.default = pkgs.mkShell {nativeBuildInputs = [config.packages.nix];};
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue