Merge pull request 'vars: add .exists to files' (#4889) from vars_exist into main

Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4889
This commit is contained in:
lassulus
2025-08-22 21:47:16 +00:00
2 changed files with 11 additions and 1 deletions

View File

@@ -304,6 +304,15 @@ in
description = "The unix file mode of the file. Must be a 4-digit octal number.";
default = "0400";
};
exists = mkOption {
description = ''
Returns true if the file exists, This is used to guard against reading not set value in evaluation.
This currently only works for non secret files.
'';
type = bool;
default = if file.config.secret then throw "Cannot determine existance of secret file" else false;
defaultText = "Throws error because the existance of a secret file cannot be determined";
};
value =
mkOption {
description = ''

View File

@@ -25,7 +25,7 @@ in
);
value = mkIf (file.config.secret == false) (
# dynamically adjust priority to allow overriding with mkDefault in case the file is not found
if (pathExists file.config.flakePath) then
if file.config.exists then
# if the file is found it should have normal priority
readFile file.config.flakePath
else
@@ -34,6 +34,7 @@ in
throw "Please run `clan vars generate ${config.clan.core.settings.machine.name}` as file was not found: ${file.config.path}"
)
);
exists = mkIf (file.config.secret == false) (pathExists file.config.flakePath);
};
};
}