nix-config/outputs.nix

46 lines
1.3 KiB
Nix

{
self,
flake-utils,
nixpkgs,
home-manager,
...
} @ inputs:
(flake-utils.lib.eachDefaultSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
in {
packages = import ./pkgs {inherit pkgs;};
devShell = pkgs.callPackage ./shell.nix {
inherit (home-manager.packages.${system}) home-manager;
};
formatter = pkgs.alejandra;
}))
// {
homeConfigurations = import ./home/configurations.nix (inputs // {inherit inputs;});
nixosConfigurations = import ./nixos/configurations.nix (inputs // {inherit inputs;});
colmena =
{
meta = {
# Default nixpkgs
nixpkgs = nixpkgs.legacyPackages.x86_64-linux;
# Per Node nixpkgs override
nodeNixpkgs = builtins.mapAttrs (name: value: value.pkgs) self.nixosConfigurations;
# Per Node additional specialArgs
nodeSpecialArgs = builtins.mapAttrs (name: value: value._module.specialArgs) self.nixosConfigurations;
};
}
// builtins.mapAttrs (name: value: {
deployment = {
targetHost = value.config.remote.ip;
targetPort = value.config.remote.sshPort;
buildOnTarget = value.config.remote.remoteBuild;
inherit (value.config.remote) allowLocalDeployment;
};
imports = value._module.args.modules;
})
self.nixosConfigurations;
}