Merge pull request 'clanCore/vars: allow mode to be set' (#3404) from visualphoenix/clan-core:mode_fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3404
This commit is contained in:
@@ -89,4 +89,23 @@ in
|
||||
expr = lib.hasPrefix builtins.storeDir config.generators.my_secret.script;
|
||||
expected = true;
|
||||
};
|
||||
|
||||
# test for mode attribute
|
||||
test_mode_attribute =
|
||||
let
|
||||
config = eval {
|
||||
generators.my_secret = {
|
||||
files.password = {
|
||||
mode = "0400";
|
||||
};
|
||||
script = ''
|
||||
echo "Mode set to ${config.generators.my_secret.files.password.mode}"
|
||||
'';
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
expr = config.generators.my_secret.files.password.mode;
|
||||
expected = "0400";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -276,9 +276,9 @@ in
|
||||
defaultText = lib.literalExpression ''if _class == "darwin" then "wheel" else "root"'';
|
||||
};
|
||||
mode = lib.mkOption {
|
||||
type = lib.types.strMatching "^[0-7]{3}$";
|
||||
description = "The unix file mode of the file. Must be a 3-digit octal number.";
|
||||
default = "400";
|
||||
type = lib.types.strMatching "^[0-7]{4}$";
|
||||
description = "The unix file mode of the file. Must be a 4-digit octal number.";
|
||||
default = "0400";
|
||||
};
|
||||
value =
|
||||
lib.mkOption {
|
||||
|
||||
@@ -43,7 +43,12 @@ in
|
||||
map (secret: {
|
||||
name = "vars/${secret.generator}/${secret.name}";
|
||||
value = {
|
||||
inherit (secret) owner group neededForUsers;
|
||||
inherit (secret)
|
||||
owner
|
||||
group
|
||||
mode
|
||||
neededForUsers
|
||||
;
|
||||
sopsFile = secretPath secret;
|
||||
format = "binary";
|
||||
};
|
||||
|
||||
@@ -28,7 +28,7 @@ in
|
||||
generator = gen_name;
|
||||
neededForUsers = file.neededFor == "users";
|
||||
inherit (generator) share;
|
||||
inherit (file) owner group;
|
||||
inherit (file) owner group mode;
|
||||
}) (relevantFiles generator)
|
||||
) vars.generators
|
||||
);
|
||||
|
||||
@@ -77,6 +77,6 @@ class Var:
|
||||
deploy=data["deploy"],
|
||||
owner=data.get("owner", "root"),
|
||||
group=data.get("group", "root"),
|
||||
mode=int(data.get("mode", "400"), 8),
|
||||
mode=int(data.get("mode", "0400"), 8),
|
||||
needed_for=data.get("neededFor", "services"),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user