clan-core/nixosModules/clanCore/flake-module.nix

42 lines
1.2 KiB
Nix
Raw Normal View History

{ self, inputs, lib, ... }: {
flake.nixosModules.clanCore = { pkgs, options, ... }: {
imports = [
./secrets
./zerotier.nix
./networking.nix
inputs.sops-nix.nixosModules.sops
2023-09-02 17:15:29 +00:00
# just some example options. Can be removed later
./bloatware
2023-09-14 14:57:19 +00:00
./vm.nix
];
options.clanSchema = lib.mkOption {
type = lib.types.attrs;
description = "The json schema for the .clan options namespace";
default = self.lib.jsonschema.parseOptions options.clan;
};
options.clanCore = {
clanDir = lib.mkOption {
type = lib.types.either lib.types.path lib.types.str;
description = ''
the location of the flake repo, used to calculate the location of facts and secrets
'';
};
machineName = lib.mkOption {
type = lib.types.str;
description = ''
the name of the machine
'';
};
clanPkgs = lib.mkOption {
default = self.packages.${pkgs.system};
};
};
options.system.clan = lib.mkOption {
type = lib.types.lazyAttrsOf lib.types.raw;
description = ''
utility outputs for clan management of this machine
'';
};
};
}