Files
clan-core/nixosModules/clanCore/state-version/default.nix
2025-07-01 17:32:20 +02:00

31 lines
802 B
Nix

{
lib,
config,
...
}:
let
var = config.clan.core.vars.generators.state-version.files.version or { };
in
{
options.clan.core.settings.state-version = {
enable = lib.mkEnableOption "automatic state-version generation.
The option will take the specified version, if one is already supplied through
the config or generate one if not";
};
config = lib.mkIf (config.clan.core.settings.state-version.enable) {
system.stateVersion = lib.mkDefault (lib.removeSuffix "\n" var.value);
clan.core.vars.generators.state-version = {
files.version = {
secret = false;
value = lib.mkDefault config.system.nixos.release;
};
runtimeInputs = [ ];
script = ''
echo -n ${config.system.stateVersion} > "$out"/version
'';
};
};
}