nix-config/outputs.nix
2025-01-11 19:52:15 +01:00

62 lines
1.9 KiB
Nix

{
self,
flake-utils,
nixpkgs,
deploy,
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 (deploy.packages.${system}) deploy-rs;
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;
# deploy.nodes =
# builtins.mapAttrs (name: value: {
# hostname = value.config.remote.ip;
# profiles.system = {
# sshUser = value.config.remote.sshUser;
# sshOpts = ["-p" (builtins.toString value.config.remote.sshPort)];
# remoteBuild = value.config.remote.remoteBuild;
# path = deploy.lib.x86_64-linux.activate.nixos value;
# };
# })
# self.nixosConfigurations;
# checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy.lib;
}