78 lines
1.8 KiB
Nix
78 lines
1.8 KiB
Nix
{
|
|
inputs,
|
|
self,
|
|
lib,
|
|
config,
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf mkEnableOption mkOption;
|
|
cfg = config.modules.userd.sops;
|
|
in {
|
|
imports = [
|
|
inputs.sops-nix.homeManagerModules.sops
|
|
];
|
|
|
|
options = {
|
|
modules.userd.sops = {
|
|
enable = mkEnableOption "Enables sops home environment";
|
|
cnst.enable = mkOption {
|
|
type = lib.types.bool;
|
|
default = false;
|
|
description = "Apply cnst sops settings";
|
|
};
|
|
toothpick.enable = mkOption {
|
|
type = lib.types.bool;
|
|
default = false;
|
|
description = "Apply toothpick sops settings";
|
|
};
|
|
adam.enable = mkOption {
|
|
type = lib.types.bool;
|
|
default = false;
|
|
description = "Apply adam sops settings";
|
|
};
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
sops = lib.mkMerge [
|
|
{
|
|
gnupg = {
|
|
home = "~/.gnupg";
|
|
sshKeyPaths = [];
|
|
};
|
|
}
|
|
(mkIf cfg.cnst.enable {
|
|
age = {sshKeyPaths = ["/home/cnst/.ssh/id_ed25519"];};
|
|
secrets = {
|
|
openai_api_key = {
|
|
format = "yaml";
|
|
sopsFile = "${self}/secrets/cnst-secrets.yaml";
|
|
};
|
|
ssh_user = {
|
|
format = "yaml";
|
|
sopsFile = "${self}/secrets/cnst-secrets.yaml";
|
|
};
|
|
};
|
|
})
|
|
(mkIf cfg.toothpick.enable {
|
|
age = {sshKeyPaths = ["/home/toothpick/.ssh/id_ed25519"];};
|
|
secrets = {
|
|
ssh_user = {
|
|
format = "yaml";
|
|
sopsFile = "${self}/secrets/toothpick-secrets.yaml";
|
|
};
|
|
};
|
|
})
|
|
(mkIf cfg.adam.enable {
|
|
age = {sshKeyPaths = ["/home/adam/.ssh/id_ed25519"];};
|
|
secrets = {
|
|
ssh_user = {
|
|
format = "yaml";
|
|
sopsFile = "${self}/secrets/adam-secrets.yaml";
|
|
};
|
|
};
|
|
})
|
|
];
|
|
};
|
|
}
|