mirror of
https://github.com/RGBCube/hjem
synced 2025-10-14 21:52:22 +00:00
modules: fix overlapping files attr names
This commit is contained in:
parent
f8fc54fde0
commit
1646b91b31
2 changed files with 15 additions and 12 deletions
|
@ -4,7 +4,8 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.attrsets) filterAttrs mapAttrsToList optionalAttrs;
|
inherit (lib.attrsets) filterAttrs mapAttrsToList;
|
||||||
|
inherit (lib.lists) optionals;
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
inherit (lib.modules) mkIf mkMerge;
|
||||||
inherit (lib.options) literalExpression mkOption;
|
inherit (lib.options) literalExpression mkOption;
|
||||||
inherit (lib.strings) optionalString;
|
inherit (lib.strings) optionalString;
|
||||||
|
@ -19,18 +20,20 @@
|
||||||
disabledUsers = filterAttrs (_: u: !u.enable) cfg.users;
|
disabledUsers = filterAttrs (_: u: !u.enable) cfg.users;
|
||||||
|
|
||||||
userFiles = user:
|
userFiles = user:
|
||||||
user.files
|
[
|
||||||
// (optionalAttrs user.xdg.enable (
|
user.files
|
||||||
|
]
|
||||||
|
++ (optionals user.xdg.enable [
|
||||||
user.xdg.cache.files
|
user.xdg.cache.files
|
||||||
// user.xdg.config.files
|
user.xdg.config.files
|
||||||
// user.xdg.data.files
|
user.xdg.data.files
|
||||||
// user.xdg.state.files
|
user.xdg.state.files
|
||||||
));
|
]);
|
||||||
|
|
||||||
linker = getExe cfg.linker;
|
linker = getExe cfg.linker;
|
||||||
|
|
||||||
manifests = let
|
manifests = let
|
||||||
mapFiles = _: files:
|
mapFiles = files:
|
||||||
lib.attrsets.foldlAttrs (
|
lib.attrsets.foldlAttrs (
|
||||||
accum: _: value:
|
accum: _: value:
|
||||||
if value.enable -> value.source == null
|
if value.enable -> value.source == null
|
||||||
|
@ -53,7 +56,7 @@
|
||||||
text = builtins.toJSON {
|
text = builtins.toJSON {
|
||||||
clobber_by_default = cfg.users."${username}".clobberFiles;
|
clobber_by_default = cfg.users."${username}".clobberFiles;
|
||||||
version = 1;
|
version = 1;
|
||||||
files = mapFiles username (
|
files = concatMap mapFiles (
|
||||||
userFiles cfg.users."${username}"
|
userFiles cfg.users."${username}"
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -222,7 +225,7 @@ in {
|
||||||
systemd.user.tmpfiles.users =
|
systemd.user.tmpfiles.users =
|
||||||
mapAttrs (_: u: {
|
mapAttrs (_: u: {
|
||||||
rules = pipe (userFiles u) [
|
rules = pipe (userFiles u) [
|
||||||
attrValues
|
(concatMap attrValues)
|
||||||
(filter (f: f.enable && f.source != null))
|
(filter (f: f.enable && f.source != null))
|
||||||
(map (
|
(map (
|
||||||
file:
|
file:
|
||||||
|
|
|
@ -53,7 +53,7 @@ in
|
||||||
state = {
|
state = {
|
||||||
home = userHome + "/customStateHome";
|
home = userHome + "/customStateHome";
|
||||||
files = {
|
files = {
|
||||||
"bar" = {
|
"foo" = {
|
||||||
source = pkgs.writeText "file-bar" "Hello World!";
|
source = pkgs.writeText "file-bar" "Hello World!";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -83,7 +83,7 @@ in
|
||||||
machine.succeed("[ -L ~alice/customCacheHome/foo ]")
|
machine.succeed("[ -L ~alice/customCacheHome/foo ]")
|
||||||
machine.succeed("[ -L ~alice/customConfigHome/bar.json ]")
|
machine.succeed("[ -L ~alice/customConfigHome/bar.json ]")
|
||||||
machine.succeed("[ -L ~alice/customDataHome/baz.toml ]")
|
machine.succeed("[ -L ~alice/customDataHome/baz.toml ]")
|
||||||
machine.succeed("[ -L ~alice/customStateHome/bar ]")
|
machine.succeed("[ -L ~alice/customStateHome/foo ]")
|
||||||
|
|
||||||
# Test regular files, created by systemd-tmpfiles
|
# Test regular files, created by systemd-tmpfiles
|
||||||
machine.succeed("[ -d ~alice/user_tmpfiles_created ]")
|
machine.succeed("[ -d ~alice/user_tmpfiles_created ]")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue