30 lines
654 B
Nix
30 lines
654 B
Nix
|
{
|
||
|
config,
|
||
|
lib,
|
||
|
...
|
||
|
}:
|
||
|
let
|
||
|
cfg = config.khscodes.fqdn;
|
||
|
in
|
||
|
{
|
||
|
options.khscodes.fqdn = lib.mkOption {
|
||
|
type = lib.types.nullOr lib.types.str;
|
||
|
default = null;
|
||
|
description = "Sets the FQDN of the machine. This is a prerequisite for many modules to be used";
|
||
|
};
|
||
|
|
||
|
config = lib.mkIf (cfg != null) (
|
||
|
let
|
||
|
hostname = builtins.head (lib.strings.splitString "." cfg);
|
||
|
domain = if hostname == cfg then null else (lib.strings.removePrefix "${hostname}." cfg);
|
||
|
in
|
||
|
{
|
||
|
networking.hostName = hostname;
|
||
|
networking.domain = domain;
|
||
|
boot.kernel.sysctl = {
|
||
|
"kernel.hostname" = cfg;
|
||
|
};
|
||
|
}
|
||
|
);
|
||
|
}
|