46 lines
997 B
Nix
46 lines
997 B
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
|
|
let
|
|
var = config.clan.core.vars.generators.machine-id.files.machineId or { };
|
|
in
|
|
{
|
|
config = lib.mkMerge [
|
|
(lib.mkIf ((var.machineId.value or null) != null) {
|
|
assertions = [
|
|
{
|
|
assertion = lib.stringLength var.machineId.value == 32;
|
|
message = "machineId must be exactly 32 characters long.";
|
|
}
|
|
];
|
|
boot.kernelParams = [
|
|
''systemd.machine_id=${var.machineId.value}''
|
|
];
|
|
environment.etc."machine-id" = {
|
|
text = var.machineId.value;
|
|
};
|
|
})
|
|
{
|
|
clan.core.vars.generators.machine-id = {
|
|
files.machineId.secret = false;
|
|
runtimeInputs = [
|
|
pkgs.coreutils
|
|
pkgs.bash
|
|
];
|
|
script = ''
|
|
uuid=$(bash ${../uuid4.sh})
|
|
|
|
# Remove the hyphens from the UUID
|
|
uuid_no_hyphens=$(echo -n "$uuid" | tr -d '-')
|
|
|
|
echo -n "$uuid_no_hyphens" > "$out/machineId"
|
|
'';
|
|
};
|
|
}
|
|
];
|
|
}
|