2020-04-30 15:54:54 +02:00
|
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
|
|
|
|
|
|
let
|
|
|
|
|
|
|
|
|
|
cfg = config.systemd.user.tmpfiles;
|
|
|
|
|
|
|
|
|
|
in {
|
|
|
|
|
meta.maintainers = [ maintainers.dawidsowa ];
|
|
|
|
|
|
|
|
|
|
options.systemd.user.tmpfiles.rules = mkOption {
|
|
|
|
|
type = types.listOf types.str;
|
|
|
|
|
default = [ ];
|
|
|
|
|
example = [ "L /home/user/Documents - - - - /mnt/data/Documents" ];
|
2023-07-02 01:45:18 +02:00
|
|
|
|
description = ''
|
2020-04-30 15:54:54 +02:00
|
|
|
|
Rules for creating and cleaning up temporary files
|
|
|
|
|
automatically. See
|
2023-07-01 01:30:13 +02:00
|
|
|
|
{manpage}`tmpfiles.d(5)`
|
2020-04-30 15:54:54 +02:00
|
|
|
|
for the exact format.
|
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
config = mkIf (cfg.rules != [ ]) {
|
2021-07-07 23:24:27 +02:00
|
|
|
|
assertions = [
|
|
|
|
|
(hm.assertions.assertPlatform "systemd.user.tmpfiles" pkgs
|
|
|
|
|
platforms.linux)
|
|
|
|
|
];
|
|
|
|
|
|
2020-04-30 15:54:54 +02:00
|
|
|
|
xdg = {
|
|
|
|
|
dataFile."user-tmpfiles.d/home-manager.conf" = {
|
|
|
|
|
text = ''
|
|
|
|
|
# This file is created automatically and should not be modified.
|
|
|
|
|
# Please change the option ‘systemd.user.tmpfiles.rules’ instead.
|
|
|
|
|
${concatStringsSep "\n" cfg.rules}
|
|
|
|
|
'';
|
|
|
|
|
onChange = "${pkgs.systemd}/bin/systemd-tmpfiles --user --create";
|
|
|
|
|
};
|
|
|
|
|
configFile = {
|
|
|
|
|
"systemd/user/basic.target.wants/systemd-tmpfiles-setup.service".source =
|
|
|
|
|
"${pkgs.systemd}/example/systemd/user/systemd-tmpfiles-setup.service";
|
|
|
|
|
"systemd/user/systemd-tmpfiles-setup.service".source =
|
|
|
|
|
"${pkgs.systemd}/example/systemd/user/systemd-tmpfiles-setup.service";
|
|
|
|
|
"systemd/user/timers.target.wants/systemd-tmpfiles-clean.timer".source =
|
|
|
|
|
"${pkgs.systemd}/example/systemd/user/systemd-tmpfiles-clean.timer";
|
|
|
|
|
"systemd/user/systemd-tmpfiles-clean.service".source =
|
|
|
|
|
"${pkgs.systemd}/example/systemd/user/systemd-tmpfiles-clean.service";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|