52 lines
975 B
Nix
52 lines
975 B
Nix
{
|
|
lib,
|
|
inputs,
|
|
flake-parts-lib,
|
|
self,
|
|
...
|
|
}: let
|
|
inherit (self) outputs;
|
|
inherit (inputs) deploy-rs;
|
|
mkDeployNode = {
|
|
hostName,
|
|
unixName ? "deploy",
|
|
system ? "x86_64-linux",
|
|
sshName ? hostName,
|
|
}: {
|
|
"${hostName}" = {
|
|
hostname = "${sshName}";
|
|
sshUser = "${unixName}";
|
|
interactiveSudo = true;
|
|
profiles = {
|
|
system = {
|
|
user = "root";
|
|
path =
|
|
deploy-rs.lib."${system}".activate.nixos
|
|
outputs.nixosConfigurations."${hostName}";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
in {
|
|
options = {
|
|
flake = flake-parts-lib.mkSubmoduleOptions {
|
|
deploy = lib.mkOption {
|
|
type = lib.types.lazyAttrsOf lib.types.raw;
|
|
};
|
|
};
|
|
};
|
|
config = {
|
|
flake.deploy.nodes =
|
|
[
|
|
"Cape"
|
|
"Akun"
|
|
]
|
|
|> map (
|
|
hostName:
|
|
mkDeployNode {
|
|
inherit hostName;
|
|
}
|
|
)
|
|
|> lib.foldr (a: b: a // b) {};
|
|
};
|
|
}
|