139 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Nix
		
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Nix
		
	
	
{
 | 
						|
  inputs = {
 | 
						|
    nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
 | 
						|
    nixCats.url = "github:BirdeeHub/nixCats-nvim";
 | 
						|
  };
 | 
						|
 | 
						|
  outputs =
 | 
						|
    {
 | 
						|
      self,
 | 
						|
      nixpkgs,
 | 
						|
      nixCats,
 | 
						|
      ...
 | 
						|
    }@inputs:
 | 
						|
    let
 | 
						|
      inherit (nixCats) utils;
 | 
						|
      luaPath = ./.;
 | 
						|
      forEachSystem = utils.eachSystem nixpkgs.lib.platforms.all;
 | 
						|
      extra_pkg_config = { };
 | 
						|
 | 
						|
      dependencyOverlays = [
 | 
						|
        (utils.standardPluginOverlay inputs)
 | 
						|
      ];
 | 
						|
 | 
						|
      categoryDefinitions =
 | 
						|
        {
 | 
						|
          pkgs,
 | 
						|
          ...
 | 
						|
        }:
 | 
						|
        {
 | 
						|
          lspsAndRuntimeDeps = {
 | 
						|
            general = [ ];
 | 
						|
          };
 | 
						|
 | 
						|
          startupPlugins = {
 | 
						|
            general = [ ];
 | 
						|
          };
 | 
						|
 | 
						|
          optionalPlugins = {
 | 
						|
            general = with pkgs.vimPlugins; [
 | 
						|
              nvim-lspconfig
 | 
						|
            ];
 | 
						|
          };
 | 
						|
 | 
						|
          sharedLibraries = {
 | 
						|
            general = [ ];
 | 
						|
          };
 | 
						|
 | 
						|
          environmentVariables = { };
 | 
						|
        };
 | 
						|
 | 
						|
      packageDefinitions = {
 | 
						|
        nvim =
 | 
						|
          { ... }:
 | 
						|
          {
 | 
						|
            settings = {
 | 
						|
              suffix-path = true;
 | 
						|
              suffix-LD = true;
 | 
						|
              wrapRc = true;
 | 
						|
              aliases = [ "vim" ];
 | 
						|
            };
 | 
						|
            categories = {
 | 
						|
              general = true;
 | 
						|
            };
 | 
						|
          };
 | 
						|
      };
 | 
						|
      defaultPackageName = "nvim";
 | 
						|
    in
 | 
						|
 | 
						|
    forEachSystem (
 | 
						|
      system:
 | 
						|
      let
 | 
						|
        nixCatsBuilder = utils.baseBuilder luaPath {
 | 
						|
          inherit
 | 
						|
            nixpkgs
 | 
						|
            system
 | 
						|
            dependencyOverlays
 | 
						|
            extra_pkg_config
 | 
						|
            ;
 | 
						|
        } categoryDefinitions packageDefinitions;
 | 
						|
        defaultPackage = nixCatsBuilder defaultPackageName;
 | 
						|
        pkgs = import nixpkgs { inherit system; };
 | 
						|
      in
 | 
						|
      {
 | 
						|
        packages = utils.mkAllWithDefault defaultPackage;
 | 
						|
 | 
						|
        devShells = {
 | 
						|
          default = pkgs.mkShell {
 | 
						|
            name = defaultPackageName;
 | 
						|
            packages = [ defaultPackage ];
 | 
						|
            inputsFrom = [ ];
 | 
						|
            shellHook = '''';
 | 
						|
          };
 | 
						|
        };
 | 
						|
 | 
						|
      }
 | 
						|
    )
 | 
						|
    // (
 | 
						|
      let
 | 
						|
        nixosModule = utils.mkNixosModules {
 | 
						|
          moduleNamespace = [ defaultPackageName ];
 | 
						|
          inherit
 | 
						|
            defaultPackageName
 | 
						|
            dependencyOverlays
 | 
						|
            luaPath
 | 
						|
            categoryDefinitions
 | 
						|
            packageDefinitions
 | 
						|
            extra_pkg_config
 | 
						|
            nixpkgs
 | 
						|
            ;
 | 
						|
        };
 | 
						|
        homeModule = utils.mkHomeModules {
 | 
						|
          moduleNamespace = [ defaultPackageName ];
 | 
						|
          inherit
 | 
						|
            defaultPackageName
 | 
						|
            dependencyOverlays
 | 
						|
            luaPath
 | 
						|
            categoryDefinitions
 | 
						|
            packageDefinitions
 | 
						|
            extra_pkg_config
 | 
						|
            nixpkgs
 | 
						|
            ;
 | 
						|
        };
 | 
						|
      in
 | 
						|
      {
 | 
						|
 | 
						|
        overlays = utils.makeOverlays luaPath {
 | 
						|
          inherit nixpkgs dependencyOverlays extra_pkg_config;
 | 
						|
        } categoryDefinitions packageDefinitions defaultPackageName;
 | 
						|
 | 
						|
        nixosModules.default = nixosModule;
 | 
						|
        homeModules.default = homeModule;
 | 
						|
 | 
						|
        inherit utils nixosModule homeModule;
 | 
						|
        inherit (utils) templates;
 | 
						|
      }
 | 
						|
    );
 | 
						|
 | 
						|
}
 |