diff --git a/flake.nix b/flake.nix index cf397ba..63ade9a 100644 --- a/flake.nix +++ b/flake.nix @@ -66,76 +66,5 @@ , nur , pre-commit-hooks }: - let - inherit (self) lib; - - inherit (futils.lib) eachSystem system; - - mySystems = [ - system.aarch64-darwin - system.aarch64-linux - system.x86_64-darwin - system.x86_64-linux - ]; - - eachMySystem = eachSystem mySystems; - - in - eachMySystem - (system: - rec { - apps = { - diff-flake = futils.lib.mkApp { drv = packages.diff-flake; }; - default = apps.diff-flake; - }; - - checks = import ./flake/checks.nix inputs system; - - devShells = import ./flake/dev-shells.nix inputs system; - - packages = import ./flake/packages.nix inputs system; - - # Work-around for https://github.com/nix-community/home-manager/issues/3075 - legacyPackages = { - homeConfigurations = { - ambroisie = home-manager.lib.homeManagerConfiguration { - # Work-around for home-manager - # * not letting me set `lib` as an extraSpecialArgs - # * not respecting `nixpkgs.overlays` [1] - # [1]: https://github.com/nix-community/home-manager/issues/2954 - pkgs = import nixpkgs { - inherit system; - - overlays = (lib.attrValues self.overlays) ++ [ - nur.overlay - ]; - }; - - modules = [ - ./home - { - # The basics - home.username = "ambroisie"; - home.homeDirectory = "/home/ambroisie"; - # Let Home Manager install and manage itself. - programs.home-manager.enable = true; - # This is a generic linux install - targets.genericLinux.enable = true; - } - ]; - - extraSpecialArgs = { - # Inject inputs to use them in global registry - inherit inputs; - }; - }; - }; - }; - }) // { - lib = import ./flake/lib.nix inputs; - - overlays = import ./flake/overlays.nix inputs; - - nixosConfigurations = import ./flake/nixos.nix inputs; - }; + import ./flake inputs; } diff --git a/flake/default.nix b/flake/default.nix new file mode 100644 index 0000000..1e0ef12 --- /dev/null +++ b/flake/default.nix @@ -0,0 +1,80 @@ +{ self +, futils +, home-manager +, nixpkgs +, nur +, ... +} @ inputs: +let + inherit (self) lib; + + inherit (futils.lib) eachSystem system; + + mySystems = [ + system.aarch64-darwin + system.aarch64-linux + system.x86_64-darwin + system.x86_64-linux + ]; + + eachMySystem = eachSystem mySystems; + + systemDependant = system: { + apps = { + diff-flake = futils.lib.mkApp { drv = self.packages.${system}.diff-flake; }; + default = self.apps.${system}.diff-flake; + }; + + checks = import ./checks.nix inputs system; + + devShells = import ./dev-shells.nix inputs system; + + packages = import ./packages.nix inputs system; + + # Work-around for https://github.com/nix-community/home-manager/issues/3075 + legacyPackages = { + homeConfigurations = { + ambroisie = home-manager.lib.homeManagerConfiguration { + # Work-around for home-manager + # * not letting me set `lib` as an extraSpecialArgs + # * not respecting `nixpkgs.overlays` [1] + # [1]: https://github.com/nix-community/home-manager/issues/2954 + pkgs = import nixpkgs { + inherit system; + + overlays = (lib.attrValues self.overlays) ++ [ + nur.overlay + ]; + }; + + modules = [ + "${self}/home" + { + # The basics + home.username = "ambroisie"; + home.homeDirectory = "/home/ambroisie"; + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; + # This is a generic linux install + targets.genericLinux.enable = true; + } + ]; + + extraSpecialArgs = { + # Inject inputs to use them in global registry + inherit inputs; + }; + }; + }; + }; + }; + + systemIndependant = { + lib = import ./lib.nix inputs; + + overlays = import ./overlays.nix inputs; + + nixosConfigurations = import ./nixos.nix inputs; + }; +in +(eachMySystem systemDependant) // systemIndependant