nix-config/outputs.nix

63 lines
1.8 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.${pkgs.system}) deploy-rs;
};
formatter = pkgs.alejandra;
}))
// {
homeConfigurations.patrick = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
system = "x86_64-linux";
# config.allowUnfree = true;
};
};
nixosConfigurations = import ./nixos/configurations.nix (inputs // {inherit inputs;});
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;
colmena =
{
meta = {
nixpkgs = nixpkgs.legacyPackages.x86_64-linux;
nodeNixpkgs = builtins.mapAttrs (name: value: value.pkgs) self.nixosConfigurations;
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;
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy.lib;
}